IBM MQ:如何处理长 运行 services/workers 上的 open/close 连接
IBM MQ: How to handle open/close connections on long running services/workers
我正在使用 .NET Core 编写一个 Worker Service (Worker Services in .NET),它将连接到 IBM MQ 队列以读取其中的消息。这将在一个漫长的 运行 过程中连续完成(过程将 运行 直到服务停止)。
我的问题是:使用 IBM MQ 运行 long processes 时,推荐 使用哪种 connection-strategy ?
我看到三种选择:
- 整个应用程序生命周期中一个连接在应用程序启动时打开连接一次。继续阅读消息
队列。当应用程序停止时关闭连接。如果
连接意外停止,使用适当的自动连接标志
自动重新连接到队列(如果可能)。
- 每次从队列中读取都打开一个新连接每次我们需要从队列中读取时,打开一个到队列和队列管理器的新连接并读取一条消息.读取完成后关闭两个连接。
- 打开一个新连接并处理队列中的项目直到清空当我们要处理消息时打开一个连接。处理队列中的所有消息,直到处理完所有消息。处理完所有消息后,关闭连接。
选项二似乎不是一个选项。但是在这种情况下,对于队列 和 队列管理器,推荐的 连接过程是什么?
虽然不是长 运行 连接的“官方”连接程序,但我选择了 选项 1:整个应用程序生命周期中的一个连接 使用适当的连接标志来处理自动重新连接。
我正在使用 .NET Core 编写一个 Worker Service (Worker Services in .NET),它将连接到 IBM MQ 队列以读取其中的消息。这将在一个漫长的 运行 过程中连续完成(过程将 运行 直到服务停止)。
我的问题是:使用 IBM MQ 运行 long processes 时,推荐 使用哪种 connection-strategy ?
我看到三种选择:
- 整个应用程序生命周期中一个连接在应用程序启动时打开连接一次。继续阅读消息 队列。当应用程序停止时关闭连接。如果 连接意外停止,使用适当的自动连接标志 自动重新连接到队列(如果可能)。
- 每次从队列中读取都打开一个新连接每次我们需要从队列中读取时,打开一个到队列和队列管理器的新连接并读取一条消息.读取完成后关闭两个连接。
- 打开一个新连接并处理队列中的项目直到清空当我们要处理消息时打开一个连接。处理队列中的所有消息,直到处理完所有消息。处理完所有消息后,关闭连接。
选项二似乎不是一个选项。但是在这种情况下,对于队列 和 队列管理器,推荐的 连接过程是什么?
虽然不是长 运行 连接的“官方”连接程序,但我选择了 选项 1:整个应用程序生命周期中的一个连接 使用适当的连接标志来处理自动重新连接。