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
}
假设在 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
}