假设在ApiApp项目中有一个CreateOrder
方法。
现在,当我从ServiceBus队列收到CreateOrder
时,我还需要触发CreateOrderMessage
。
据我所知,使用带有队列触发器的Azure Functions可以轻松完成此操作。但这增加了更多的复杂性(引入另一个概念,将需要一个新的存储库,文档等)所以我的问题很简单:
我可以在WebApi项目中侦听队列消息吗? (我知道启动一个新线程涉及一些问题)
感谢您的任何建议
Larsi
答案 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
}
答案 1 :(得分:0)
技术上,是的,你可以。正如您已经提到的,这不是推荐的方法,主要是由于手动线程管理,WebApi应用程序的生命周期等可能的复杂性。理想情况下,消息处理应该在Web作业,工作者角色,功能,服务等中完成。