我正在开发ASP.NET Web API服务并将它们放到要处理的Azure Service Bus队列中 . Web API服务托管在Azure上 .
我需要实现一个监听这些消息的应用程序,并在收到这些消息时对其进行处理 .
我希望这可以在Azure上托管,但不确定最好的方法来解决这个问题 .
您可以实现这样的侦听器服务并在Azure上托管它吗?
实施此类应用程序/服务的最佳方法是什么?
你可以做几件事 . 您可以使用ASB的OnMessage API,它允许您注册回调并处理并发和自动完成的传入消息 .
在Azure上,您有几个选项:Cloud Services(工作者角色),Azure Web Jobs,Azure Functions(如果您的处理速度很快,否则我不推荐它),Service Fabric(如果系统很小,可能有点过分),如果需要,可以使用普通虚拟机 .
关于功能的警告 - 如果你做了大量工作,功能并不理想,因为你需要为你执行的时间/内存付费 .
侦听队列的工作人员的几个选项是:
功能
网络工作
您可以在此处查看使用函数的示例:https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-an-event-processing-function .
使用Web作业的示例如下:https://docs.microsoft.com/en-us/azure/app-service-web/websites-dotnet-webjobs-sdk-service-bus .
两者都允许您创建使用队列消息的后台作业 . 两者都支持存储和服务总线队列 . 主要区别在于Web作业需要具有一定数量实例的应用程序服务计划,而功能可以在动态计划上运行,该计划可以完全自动扩展 .
您应该注意,函数不适用于真正长时间运行的作业(超过5-15分钟),尽管它们都不是Web作业 .
为什么不尝试在docker中运行linux进程(守护进程) .
3 回答
你可以做几件事 . 您可以使用ASB的OnMessage API,它允许您注册回调并处理并发和自动完成的传入消息 .
在Azure上,您有几个选项:Cloud Services(工作者角色),Azure Web Jobs,Azure Functions(如果您的处理速度很快,否则我不推荐它),Service Fabric(如果系统很小,可能有点过分),如果需要,可以使用普通虚拟机 .
关于功能的警告 - 如果你做了大量工作,功能并不理想,因为你需要为你执行的时间/内存付费 .
侦听队列的工作人员的几个选项是:
功能
网络工作
您可以在此处查看使用函数的示例:https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-an-event-processing-function .
使用Web作业的示例如下:https://docs.microsoft.com/en-us/azure/app-service-web/websites-dotnet-webjobs-sdk-service-bus .
两者都允许您创建使用队列消息的后台作业 . 两者都支持存储和服务总线队列 . 主要区别在于Web作业需要具有一定数量实例的应用程序服务计划,而功能可以在动态计划上运行,该计划可以完全自动扩展 .
您应该注意,函数不适用于真正长时间运行的作业(超过5-15分钟),尽管它们都不是Web作业 .
为什么不尝试在docker中运行linux进程(守护进程) .