Azure ApiApp - 收听ServiceBus消息

时间:2017-01-19 11:30:11

标签: asp.net-web-api azureservicebus azure-functions azure-api-apps

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

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

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

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

感谢您的任何建议

Larsi

2 个答案:

答案 0 :(得分:1)

我们也可以使用azure函数轻松完成,我们可以使用Web将WebJob SDK导入到azure函数中  #r Microsoft.Azure.WebJobs,更多详细信息请参阅azure functions C# developer 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

答案 1 :(得分:0)

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