实现Azure Service Bus侦听器应用程序

时间:2016-12-21 17:33:29

标签: c# azure asp.net-web-api azureservicebus azure-servicebus-queues

我正在开发ASP.NET Web API服务并将它们放到要处理的Azure Service Bus队列中。 Web API服务托管在Azure上。

我需要实现一个侦听这些消息的应用程序,并在收到这些消息时对其进行处理。

我希望将此托管在Azure上,但不确定最佳方法。

  • 您可以实现这样的侦听器服务并将其托管在Azure上吗?
  • 实施此类应用程序/服务的最佳方法是什么?

3 个答案:

答案 0 :(得分:5)

你可以做几件事。 您可以使用ASB的OnMessage API,它允许您注册回调并处理并发和自动完成的传入消息。

在Azure上,您有几个选项:Cloud Services(工作人员角色),Azure Web Jobs,Azure Functions(如果处理速度很快,否则我不推荐),服务结构(如果系统很小,可能有点过分),如果需要则可以是普通的虚拟机。

关于功能的警告 - 如果你做了大量工作,功能并不理想,因为你需要支付你执行的时间/内存。

答案 1 :(得分:2)

侦听队列的工作人员的几个选项是:

  1. 功能
  2. 网络工作
  3. 您可以在此处查看使用功能的示例:https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-an-event-processing-function

    使用Web Jobs的示例如下:https://docs.microsoft.com/en-us/azure/app-service-web/websites-dotnet-webjobs-sdk-service-bus

    两者都允许您创建使用队列消息的后台作业。两者都支持存储和服务总线队列。主要区别在于Web作业需要具有一定数量实例的应用程序服务计划,而功能可以在动态计划上运行,该计划可以完全自动扩展。

    您应该注意,函数不适用于长时间运行的作业(超过5-15分钟),尽管它们都不是Web作业。

答案 2 :(得分:0)

为什么不尝试在docker中运行linux进程(守护进程)。

相关问题