当前位置: 首页 > 知识库问答 >
问题:

在JMS中对消息进行排队,以延迟处理

魏安然
2023-03-14

我有一个中间件位于两个JMS队列之间。它从一个数据库读取、处理一些数据到数据库中,然后写入另一个数据库。

这里有一个小图来描绘设计:

考虑到这一点,我有一些有趣的逻辑要集成到服务中。

    null

共有1个答案

花飞尘
2023-03-14

JMS2.0规范描述了消息延迟传递的概念。请参阅https://java.net/projects/jms-spec/pages/jms20FinalRelease的“What's new”部分任何JMS提供程序都实现了延迟交付特性。

但我想知道延迟交货对你的情况有什么帮助。由于数据库写入存在问题,后续的消息处理和对数据库的写入尝试可能会以相同的情况结束。我想最好先解决数据库更新的问题,然后再从队列中提取消息。

 类似资料:
  • 此应用程序收到 但是,当不存在web套接字会话,并且JMSProducer将消息发送到QueueSenderSessionBean中的目标“jms/notificationQueue”时,消息会立即在NotificationEndpoint中使用。这不是我的意图。 我的目的是让队列保留消息,直到用户连接到NotificationEndpoint。如果用户没有连接到NotificationEndpo

  • spring XML中的jmsTemplate定义: 有人对问题有什么建议吗/关于如何实现延迟消息传递的其他想法?谢了!

  • 如何延迟JMS消息发送或在不确定的时间内继续? 我使用的是Weblogic,正如您所知,在JMS发送之后,接收方将异步处理消息,但是,此时或有时外部资源还没有为接收方做好准备,因此,我想使用一些检查逻辑来延迟发送或处理消息。我猜例如:我将消息放入挂起队列,然后频繁检查资源可用性,一旦发送或继续消息? 大家都知道Weblogic是否支持这一点,或者如何实现它吗?

  • 我们在RHEL 7.0 VM上部署了一个Java/spring/Tomcat应用程序,它使用AlejandRorivera/Embedded-RabbitMQ,一旦部署了war,它就启动Rabbitmq服务器,并连接到它。我们有多个队列用来处理和过滤事件。 流程如下所示: 我们接收到的事件->发布事件队列->侦听器类筛选事件->发布到另一个队列进行处理->我们发布到另一个队列进行日志记录。 问题是

  • 主要内容:1 load加载延迟消息数据,1.1 parseDelayLevel解析延迟等级,2 start启动调度消息服务,3 DeliverDelayedMessageTimerTask投递延迟消息任务,3.1 executeOnTimeup执行延迟消息投递,3.2 scheduleNextTimerTask下一个调度任务,3.3 correctDeliverTimestamp校验投递时间,3.4 messageTimeup恢复正常消息,,基于RocketMQ release-4.9.3,深入