【发布时间】:2015-07-08 08:05:26
【问题描述】:
要求:构建一个基于 .NET 的应用程序,该应用程序可以定期从 IBM Websphere Message Queue 读取消息并将这些消息保存在数据库中
我的解决方案:我创建了一个 Windows 服务应用程序,它以一定的时间间隔轮询消息队列并处理数据。
轮询的问题是应用程序进程被轮询间隔延迟。我不能将间隔设置得太短,因为我不确定消息队列中会有多少数据以及处理需要多长时间。
问题:使用 .NET 处理来自 WebSphere Message Queue 的数据的更好方法是什么?数据到达消息队列后如何处理?
【问题讨论】:
-
为什么应用程序不遵循
GET的通常模式等待? -
@T.Rob 不确定您的意思。应用程序当前等待 30 秒,然后从 MQ 获取并处理消息。
-
问题说“应用程序进程被轮询间隔延迟”。通常,应用程序发出一个
GET并指定一个WAIT间隔。当消息到达时,延迟为零,因为应用程序正在等待它。如果WAIT过期,应用程序将获得RC=2033并与另一个GET和WAIT循环返回。但是,如果应用程序发出GET而没有WAIT,然后休眠 30 秒,则应用程序休眠时会有很长的延迟。
标签: .net architecture ibm-mq