计划的消息按设置的重复间隔

在Spring-Boot / JPA域中,我有以下任务:

id: 1,task: GET:http://example.com/file.zip,schedule: every-minute
id: 2,task: DELETE:/some/path,schedule: every-5-minutes
id: 2,task: TOUCH:/some/path,schedule: every-1-hour

我有一个名为taskHandlerService的spring服务,能够处理上述任务, 但是我一直想知道如何安排它们,以使消息按指定的时间间隔到达taskHandlerService

任务列表经常更改,因此这些作业不会运行很长时间。

我在这里想到的一种幼稚的方法是创建多个Quartz-job,为列表中的每个任务创建一个,然后该工作将负责在taskHandlerService上调用方法,消息为论点。

是否有更好的方法来解决此问题?

更新:经过一些搜索,延迟的队列似乎是一个更好的方法。但不确定如何将Qaurtz Cron Schedule表达式转换为该队列。

elle_131 回答:计划的消息按设置的重复间隔

您可以使用@Scheduled批注标记方法,Spring会考虑创建计时器等。

https://spring.io/guides/gs/scheduling-tasks/

,

您可以在方法中使用这些注释:

   @Scheduled(cron = "0 */1 * ? * *") // for the first method
   @Scheduled(cron = "0 */5 * ? * *") //Second method
   @Scheduled(cron = "0 0 * ? * *")   // third method

有关更多信息,您可以查看示例HERE

本文链接:https://www.f2er.com/3157375.html

大家都在问