我有一个具有以下函数的类:
public class classA{
...
...
void function_to_be_scheduled(String param){
...
...
}
}我希望使用任务名称空间的scheduled-tasks元素来调度函数。
<task:scheduled-tasks>
<task:scheduled ref="beanA" method="function_to_be_scheduled" cron="${cron}"/>
</task:scheduled-tasks>如何将参数传递给要调度的函数?
发布于 2015-04-01 18:40:09
根据docs的说法,你不能。
注意,要调度的方法必须有无效的返回,并且不能有任何参数。
发布于 2015-04-01 18:43:34
关于scheduling的Spring文档说:
请注意,要调度的方法必须具有无效的返回,并且不能期望任何参数
因为参数来自Spring配置文件,所以您可以在spring文件中声明一个bean (封装beanA的es beanB ),在bean中注入所需的参数,并计划执行知道该参数的bean的方法(它可以是beanA的一个简单包装器)
发布于 2019-03-24 00:36:34
您可以使用TaskScheduler并在Runnable中使用参数封装您的逻辑
@Autowired
private TaskScheduler scheduler;
public void scheduleRules() {
MyTask task = new MyTaskImpl(someParam);
// new CronTrigger
scheduler.scheduleAtFixedRate(task, Duration.ofMinutes(1));
}https://stackoverflow.com/questions/29388540
复制相似问题