我正在尝试实现ActiveMQ Artemis。Artemis是ActiveMQ的一部分吗?
我试图使周期性任务延迟和调度消息传递ActiveMQ,但唯一有效的是延迟调度消息。文档中有关于核心API的说明:
Apache ActiveMQ Artemis是一个消息代理,是ActiveMQ项目的一部分。但是,它与“经典的”ActiveMQ代理代码库是分开的。它基于一种更新的、基本上非阻塞的设计,支持所有协议和与ActiveMQ5.x相同的大部分功能。ActiveMQ社区目前的目标是,Artemis将成为ActiveMQ的6.x版本。
您可以使用计划传递,但这仅适用于单个邮件。一旦该消息被传递和使用,它就消失了,这意味着您需要发送另一个预定的消息。没有自动、重复地传递相同的信息。
Artemis支持称为“最后值队列”的东西,在该队列中,您可以将消息的特殊属性设置为特定的值(例如任务ID),每当您用相同的值向队列发送消息时,它将用您发送的消息替换现有的消息。换句话说,它总是有您发送的最后一个值。您可以在关于最后值队列的Artemis文档中了解更多关于这一点的信息。
还有一种典型的重复检测,您可以在消息上设置一个重复ID,如果代理看到一个重复的重复ID,它将丢弃带有重复重复ID的消息。您可以在关于重复检测的Artemis文档中了解更多关于这一点的信息。
默认情况下,发送到持久队列(默认情况下队列是持久的)的任何标记为持久化
(或JMS术语中的persistent
)的消息都将持久化到磁盘。
ActiveMQ Artemis是一个JMS实现,所以Spring中所有可用的JMS集成类都可以正常工作。