在Java世界中需要某种作业调度程序或延迟的消息队列

时间:2018-10-18 02:34:43

标签: activemq quartz-scheduler message-queue scheduler job-scheduling

我将来需要根据某个事件的执行情况执行一个流程,例如20分钟,但是我可能需要根据不同的因素取消该计划的流程。或者,根据其他事件,我可能需要重新启动计时器。你明白了。所有不同的排列。有人知道有满足这种需求的好技术吗?也许石英(石英很烂吗?是否做所有这些事情?),也许是activemq,也许还有其他一些工作调度技术? 谢谢! 罗恩(Ron)

1 个答案:

答案 0 :(得分:0)

ActiveMQ的调度程序非常适合此操作。模式可以像这样:

  1. 启动一个进程(获取一些标识符)
  2. 发送消息到ActiveMQ调度程序以在x个时间段内触发
  3. 消息使用者收到计时器消息,拉出标识符以检查状态
  4. 如果过程完成了..继续并完成
  5. 如果进程需要更多的等待时间,请向ActiveMQ发送另一个计时器消息

一切都是异步的,所需的代码非常少。使用ActiveMQ的最大优势在于,您可以让多个使用者监听调度的消息以提供高可用性。