允许最终用户使用Spring Boot计划任务

时间:2017-04-03 12:52:58

标签: spring-boot scheduled-tasks

我正在使用Spring Boot,我希望允许最终用户根据需要安排任务。

我有一个带有Angular前端的Spring Boot REST后端。用户应该能够(使用crontab样式语法)一个任务(即一个类'方法后端端),并选择一些参数。

用户还应该能够从前端查看,编辑,删除计划任务

我知道我可以使用@Scheduled注释,但我不知道最终用户如何使用它来安排任务。我也看一下Quartz,但是我没有看到如何在方法调用中设置用户的参数。

我应该使用Spring Batch吗?

1 个答案:

答案 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);
相关问题