我正在使用Spring Boot,我希望允许最终用户根据需要安排任务。
我有一个带有Angular前端的Spring Boot REST后端。用户应该能够(使用crontab样式语法)一个任务(即一个类'方法后端端),并选择一些参数。
用户还应该能够从前端查看,编辑,删除计划任务
我知道我可以使用@Scheduled注释,但我不知道最终用户如何使用它来安排任务。我也看一下Quartz,但是我没有看到如何在方法调用中设置用户的参数。
我应该使用Spring Batch吗?
答案 0 :(得分:1)
要以编程方式安排作业,您有以下选择:
ScheduledExecutorService
,它可以安排命令在给定延迟后运行,或定期执行。它位于包java.util.concurrent
中,易于使用。要动态安排Crontab作业,您可以使用quartz和here's official examples,基本上你要做的是:
Scheduler
,可以通过Spring定义为java bean和autowire
,示例代码:JobDetail
CronTrigger
job
cron
官方示例代码(计划每20秒运行一次):
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
JobDetail job = newJob(SimpleJob.class)
.withIdentity("job1", "group1")
.build();
CronTrigger trigger = newTrigger()
.withIdentity("trigger1", "group1")
.withSchedule(cronSchedule("0/20 * * * * ?"))
.build();
sched.scheduleJob(job, trigger);