从appservice调用Azure webjob

时间:2019-12-05 09:26:51

标签: c# azure azure-webjobs azure-web-app-service

摘要

我有一个Azure Appservice; webapi,并且当同时接收到数百个请求时,应用程序服务无法快速接收它们,响应时间将超过230秒,从而导致服务器错误。但这对于低于1xx的请求不会发生。

核心功能:

此应用程序服务将请求记录到Blob存储,并将请求正文发送到服务总线。

我的问题是

我读了web apps performance in Azure FAQ,如果响应时间超过230秒,则建议使用webjob。

我如何将appservice的请求主体发送到期望字符串数组作为输入的webjob控制台应用程序?

这样,该Web作业就可以进行Blob的存储并发送到服务总线(这是appservice的工作)。

2 个答案:

答案 0 :(得分:1)

您可以利用Azure函数将消息发送到Azure Service bus.Azure Functions 支持Service Bus队列和主题的触发和输出绑定。通过在Azure功能上运行,在消费层上也将有助于成本优化。

关注这些讨论的内容:

https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-service-bus

https://blogs.msdn.microsoft.com/benjaminperkins/2018/11/02/azure-function-service-bus/

答案 1 :(得分:1)

您真正需要的是一种启动后台进程,然后在完成后获取输出的方法。

enter image description here

这就是我要做的:

Azure函数+持久函数,由http请求触发。在响应中,您将收到一个用于查询状态(已完成/正在运行)的URL。

更多信息:https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-overview?tabs=csharp

https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-create-first-csharp