我有几个不同的应用程序需要强大的数据库支持的作业/任务队列,到目前为止,我在识别任何有前途的候选人时遇到了麻烦。我喜欢一些建议!
顺便说一句,通过数据库支持,我打算将作业数据和状态保存到 JDBC DB 以实现可靠性。
哦,我正在专门寻找一个图书馆。我知道诸如 ActiveMQ 和基于 JMS 的系统之类的系统。但我需要我的应用程序保持独立,而不是变成整个平台。(在将工作/任务建模为消息的概念飞跃方面,我也总是遇到一些麻烦。)
谢谢,阿维
我建议您再看看 ActiveMQ。虽然默认情况下它是一个独立的应用程序,但您也可以将其嵌入到您的应用程序中,使其“独立”。我已经使用 ActiveMQ 的Spring 支持完成了这项工作,但您也可以通过简单地在应用程序中实例化正确的类来以编程方式完成。ActiveMQ 是轻量级的,并提供了多种持久性机制。
关于将“消息”视为“工作”是否存在不和谐,我想这取决于您所说的“工作”是什么意思。如果我递给你一张写着“修剪草坪”的纸,而你认为这是一份工作,那么信息也可以是一份工作。相反,如果您在真正开始修剪草坪之前没有工作,那么他们就没有。
也许您可能想查看Spring Batch,它使用基于作业的域模型。它也是可嵌入的,并且内置了持久性、重试等。