Azure ApiApp - 侦听 ServiceBus 消息

Azure ApiApp - listen for ServiceBus msg

假设在 ApiApp 项目中有一个 CreateOrder 方法。

现在我还需要在从 ServiceBus 队列接收到 CreateOrderMessage 时触发 CreateOrder

我知道这可以通过队列触发器使用 Azure Functions 轻松完成。但这增加了更多的复杂性(引入了另一个概念,将需要一个新的存储库、文档等)所以我的问题很简单:

我可以在 WebApi 项目中监听队列消息吗? (我知道启动一个新线程涉及一些问题)

感谢任何建议

拉尔西

从技术上讲,是的,你可以。正如您已经提到的,这不是推荐的方法,主要是由于手动线程管理、WebApi 应用程序的生命周期等方面可能存在的复杂性。理想情况下,消息处理应该在 Web 作业、工作者角色、功能、服务等中完成.

我们也可以使用 azure 函数轻松做到这一点,我们可以使用将 WebJob SDK 导入 azure 函数 #r Microsoft.Azure.WebJobs,更多详情请参考azure functions C# developer reference. We can get the more info from reference how to create azure function.

我们也可以通过 WebJob 做到这一点,我们也可以很容易 deploy WebJob with VS。 以下是演示代码:

public static void ProcessQueueMessage([ServiceBusTrigger("inputqueue")] string message, 
        TextWriter logger)

    {

         // Todo

    }

更多详情请参考How to use Azure Service Bus with the WebJobs SDK