gpt4 book ai didi

java - 如何安排调用方法

转载 作者:行者123 更新时间:2023-12-02 06:22:00 25 4
gpt4 key购买 nike

如何配置要通过调用方法来调度的方法。我的意思是。添加注释@Scheduled,方法从启动应用程序调用。

我想按计划运行此方法(例如每2分钟一次),但前提是程序调用此方法,否则不应安排此方法

也许还有另一种方法可以做到这一点?另一个注释?如果没有,如何配置?

最佳答案

使用 Spring 的 TaskScheduler 之一实现。

//Somewhere define the desired scheduler.

@Bean
public ThreadPoolTaskScheduler threadPoolTaskScheduler(){
ThreadPoolTaskScheduler threadPoolTaskScheduler
= new ThreadPoolTaskScheduler();
threadPoolTaskScheduler.setPoolSize(5);
threadPoolTaskScheduler.setThreadNamePrefix(
"ThreadPoolTaskScheduler");
return threadPoolTaskScheduler;
}

// define the task you want to run
class RunnableTask implements Runnable{
private String message;

public RunnableTask(String message){
this.message = message;
}

@Override
public void run() {
System.out.println(new Date()+" Runnable Task with "+message
+" on thread "+Thread.currentThread().getName());
}
}


// to schedule:
taskScheduler.scheduleAtFixedRate(new RunnableTask("Fixed Rate of 2 seconds") , 2000);

致谢Baeldung

主要思想是在 ApplicationContext 中定义某种调度程序(即以 bean 的形式)。然后在您的逻辑(您想要提交重复任务的地方)中,您 Autowiring 此执行器并提交任务。

或者,如果您要运行的表达式是无状态的,则不一定需要一个实现 Runnable 的类,但您可以将其编写为 lambda 表达式。

关于java - 如何安排调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55827387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com