Spring 基于 Quatrz 动态注释的 Java 配置
Spring Quatrz Dynamic Annotation Based Java Config
抱歉,我不得不在这里问它,因为我搜索了很多,尝试了很多东西,但都没有得到结果。
所以我想做的是我有一个服务,它给我工作列表以及他们需要的时间间隔 运行 所以,我想做的是循环作业列表并使用 Spring Quartz 安排它们,我想使用 java 配置而不是基于 XML 来完成它们。
此应用程序将是一个 Web 应用程序,它将 运行 运行在服务器上,一个 Maven 项目。
我找到了结果并且主要使用自定义注释。有没有我可以尝试或使用的示例或示例?
问题是我们对这一切还很陌生,我们 none 知道如何着手进行,因此非常感谢您的帮助。
提前致谢,
维舍什
让你的@Confugation class 实现 SchedulingConfigurer。这允许您以编程方式安排任务。例如
@Configuration
@EnableScheduling
public class TaskConfiguration implements SchedulingConfigurer{
@Autowired
private TaskDao taskDao; // implement TaskDao to read tasks from DB
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar){
List<Task> tasks = taskDao.findAllTasks();
for(Task task : tasks){
Runnable taskJob = createTaskJob(task); // create task by reflection
taskRegistrar.addCronTask(taskJob , task.getCronExpression());
}
}
}
public class Task implements Serializable{
private String cronExpression;
private String jobClass;
//getters and setters
}
@ekem chitsiga 解决方法也可以。以下是 运行 您的 cron 作业的另一种替代方法,基于您设置的 cron epressions。
@Configuration
@EnableScheduling
public class Scheduler {
private static final Logger logger = LoggerFactory
.getLogger(Scheduler.class);
@Autowired
private JobRepository jobRepository;
/*
* Cron expression ="0 0/1 * 1/1 * ?" for every minute
*/
@Scheduled(cron = "0 0/1 * 1/1 * ?")
public void sendNotification() {
logger.info("Initializing Cron job scheduler....");
//Do you scheduler specific work here
}
}
抱歉,我不得不在这里问它,因为我搜索了很多,尝试了很多东西,但都没有得到结果。
所以我想做的是我有一个服务,它给我工作列表以及他们需要的时间间隔 运行 所以,我想做的是循环作业列表并使用 Spring Quartz 安排它们,我想使用 java 配置而不是基于 XML 来完成它们。
此应用程序将是一个 Web 应用程序,它将 运行 运行在服务器上,一个 Maven 项目。
我找到了结果并且主要使用自定义注释。有没有我可以尝试或使用的示例或示例?
问题是我们对这一切还很陌生,我们 none 知道如何着手进行,因此非常感谢您的帮助。
提前致谢, 维舍什
让你的@Confugation class 实现 SchedulingConfigurer。这允许您以编程方式安排任务。例如
@Configuration
@EnableScheduling
public class TaskConfiguration implements SchedulingConfigurer{
@Autowired
private TaskDao taskDao; // implement TaskDao to read tasks from DB
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar){
List<Task> tasks = taskDao.findAllTasks();
for(Task task : tasks){
Runnable taskJob = createTaskJob(task); // create task by reflection
taskRegistrar.addCronTask(taskJob , task.getCronExpression());
}
}
}
public class Task implements Serializable{
private String cronExpression;
private String jobClass;
//getters and setters
}
@ekem chitsiga 解决方法也可以。以下是 运行 您的 cron 作业的另一种替代方法,基于您设置的 cron epressions。
@Configuration
@EnableScheduling
public class Scheduler {
private static final Logger logger = LoggerFactory
.getLogger(Scheduler.class);
@Autowired
private JobRepository jobRepository;
/*
* Cron expression ="0 0/1 * 1/1 * ?" for every minute
*/
@Scheduled(cron = "0 0/1 * 1/1 * ?")
public void sendNotification() {
logger.info("Initializing Cron job scheduler....");
//Do you scheduler specific work here
}
}