我有一个包含@Scheduled
注释方法的类。
我想在Spring Boot应用程序中创建一个类的多个实例,以便应该能够在指定的时间段内运行多个作业。
我已经用Google搜索并尝试创建一个新对象,但是调度却没有用。
注意:我将传递在运行时为各个实例执行的操作。
答案 0 :(得分:0)
您可以使用多种方法创建一个类,以同时安排您的工作,执行相同的工作。
@Component
public class Job {
@Scheduled(initialDelay = 1000, fixedDelay = 60000)
public void job1() {
jobWork();
}
@Scheduled(initialDelay = 1000, fixedDelay = 60000)
public void job2() {
jobWork();
}
private void jobWork() {
}
}
答案 1 :(得分:0)
@Scheduled是可重复的注释,因此您可以通过相同的方法添加多个@Scheduled
:
@Scheduled(initialDelay = 1000, fixedDelay = 60000)
@Scheduled(initialDelay = 1000, fixedDelay = 60000)
public void jobWork() {
jobWork();
}
@Repeatable(value = Schedules.class)
以@Scheduled重复注释,允许多个注释
答案 2 :(得分:0)
这是答案,
我实施了ApplicationContextAware
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
for (int i =0;i<4;i++) {
((ConfigurableApplicationContext) applicationContext).getBeanFactory()
.registerSingleton("New Instance " + i, new SchedularJob());
}
}
它将创建4个SchedularJob类的实例,并且4个调度程序将独立运行。