我在使用 MassTransit 3 时遇到以下问题。我正在将消息从 WebApi 发布到后端(作为连续 Web 作业运行)。当后端作业启动时,一切正常并且消息被正确接收。大约 20 分钟后,后端将停止接收从 WebApi 发布的所有消息。该消息已正确发布到 Azure 服务总线,但仅在重新启动 Webjob 进程后才会被拾取。
MT 调试日志完全无声,没有显示任何问题。因此,如果机器翻译的作者能想到任何可能导致此问题的因素,那么这个问题更适合他们。
更新1
Web 作业是连续的并在标准模式下运行,因此 Azure 文档中提到的 20 分钟超时不适用。
我已检查日志并且作业正在运行。环境不会记录任何有关停止作业的信息,并且进程资源管理器会显示该作业。具有相当高的线程数(我只有 3 个消费者)。 所有线程都处于等待状态。
最佳答案
您应该创建云服务而不是网络作业。 Web 作业并不适合连续流程。 worker 角色正是您所需要的。
来自 Azure 文档:
Web apps in Free mode can time out after 20 minutes if there are no requests to the scm (deployment) site and the web app's portal is not open in Azure. Requests to the actual site will not reset this.
关于azure - 公共(public)交通 azure 消息停止被接收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31828484/