activemq - 在 Java 世界中需要某种作业调度程序或延迟消息队列
问题描述
我需要在未来执行一个流程,比如说 20 分钟,根据发生的一些事件,但我可能需要根据不同的因素取消该计划的流程。或者,我可能需要在工作中重新启动计时器,具体取决于另一个事件......等等。你明白了。这一切的不同排列。有谁知道满足这种需求的好技术?也许是石英(石英很烂吗?它会做所有这些事情吗?),也许是 activemq,也许是其他一些作业调度技术?谢谢!-罗恩
解决方案
ActiveMQ 的调度器非常适合这种情况。模式可以是这样的:
- 启动一个进程(获取一些标识符)
- 向 ActiveMQ 调度程序发送消息以在 x 时间段内触发
- 消息消费者收到定时器消息,拉取标识符查看状态
- 如果过程完成..继续并完成
- 如果进程需要更多等待时间,则向 ActiveMQ 发送另一个计时器消息
一切都是异步的,所需的代码非常少。使用 ActiveMQ 的最大优势是您可以让多个使用者监听预定消息以提供高可用性。
推荐阅读
- python - 如何大规模比较多个表中的多个字段?
- laravel - 如何使用单个数据库用户表创建两个单独的站点登录/注册
- perl - Perl 使用系统命令删除文件总是返回成功
- flutter - 使用 pdf 包在 PDF 文档中创建动态表格行
- java - 在 JAVA 中使用 recursion 获得不同的结果 StringBuilder 与 String
- ios - 找不到“EXUpdates/EXUpdatesAppController.h”文件
- github - github问题上的红色/绿色感叹号图标是什么意思?
- docker - 启动 Mayan 时出错“没有名为 'sqlalchemy' 的模块”
- c# - 使用 C#、.net 和 TFS 进行自动化测试的可执行文件
- javascript - 在javascript中测试获取请求