使用 RabbitMQ 的计划消息
Scheduled messages with RabbitMQ
我正在寻找一种使用 RabbitMQ 安排消息的解决方案,因此不仅可以延迟多个来源中描述的消息,还可以安排它有一条消息,例如每天。
如果不是 RabbitMQ,您能想到任何其他解决方案并且建议使用消息总线的微服务环境吗?
所以它实际上是关于结合任务调度程序和消息总线的概念......
还是使用作业调度程序将消息推送到消息队列更好,例如将 Rundeck 与 RabbitMQ 结合使用?
Or is it better to use a job scheduler just to push messages to the message queue, e.g. using rundeck in combination with RabbitMQ?
是的。
RabbitMQ 不是为处理调度而设计的,尝试使用它只会很痛苦(充其量)。
最好使用其他调度系统,如 cron 作业或 rundeck 或任何其他可用的调度工具。通过该工具,您可以执行将消息推送到 RabbitMQ 的代码,从而触发系统其他部分的工作。
您可以试试 ActiveMQ,它支持 crontab 计划,它也提供了一个 web 控制台来设置计划。如果你想从代码安排,它可能看起来像:
MessageProducer producer = session.createProducer(destination);
TextMessage message = session.createTextMessage("test msg");
message.setStringProperty(ScheduledMessage.AMQ_SCHEDULED_CRON, "0 * * * *");
producer.send(message);
我正在寻找一种使用 RabbitMQ 安排消息的解决方案,因此不仅可以延迟多个来源中描述的消息,还可以安排它有一条消息,例如每天。
如果不是 RabbitMQ,您能想到任何其他解决方案并且建议使用消息总线的微服务环境吗? 所以它实际上是关于结合任务调度程序和消息总线的概念......
还是使用作业调度程序将消息推送到消息队列更好,例如将 Rundeck 与 RabbitMQ 结合使用?
Or is it better to use a job scheduler just to push messages to the message queue, e.g. using rundeck in combination with RabbitMQ?
是的。
RabbitMQ 不是为处理调度而设计的,尝试使用它只会很痛苦(充其量)。
最好使用其他调度系统,如 cron 作业或 rundeck 或任何其他可用的调度工具。通过该工具,您可以执行将消息推送到 RabbitMQ 的代码,从而触发系统其他部分的工作。
您可以试试 ActiveMQ,它支持 crontab 计划,它也提供了一个 web 控制台来设置计划。如果你想从代码安排,它可能看起来像:
MessageProducer producer = session.createProducer(destination);
TextMessage message = session.createTextMessage("test msg");
message.setStringProperty(ScheduledMessage.AMQ_SCHEDULED_CRON, "0 * * * *");
producer.send(message);