azure - WebJob QueueTrigger - 每个函数的限制

标签 azure azure-webjobs azure-webjobssdk

我已经准备好了一些 Webjob,每个 Webjob 都会响应多个 QueueTrigger,例如

public static void ProcessMessage([QueueTrigger("XXXXXXX")] string message, TextWriter log)
{
    //processing message
} 

public static void ProcessMessage([QueueTrigger("YYYYYY")] string message, TextWriter log)
{
    //processing message
} 

我应该将每个触发器分离到单独的作业中吗?是否有任何原因表明继续沿着这条路径是一个坏主意,即它可以触发的队列越多,由于线程限制而执行的函数就越少?

最佳答案

您正在做的是通用方法 - WebJobs SDK JobHost 旨在处理同一应用程序中的许多不同作业功能。确实,单个主机内的所有作业功能将共享相同的进程/内存空间和限制,但对于大多数情况来说,这不是问题,并且是推荐的方法。

特别是对于 QueueTrigger,每个函数都将有效地轮询新工作,当工作可用时,每个函数将以 16 条为一组提取消息(可通过 JobHostConfiguration.Queues 配置)并并行处理它们.

如果需要,您还可以通过增加运行 WebJob 的实例数量来进行扩展。然后,每个实例将与其他实例协作以处理更多负载。

关于azure - WebJob QueueTrigger - 每个函数的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40720293/

相关文章:

azure - Webjobs 方法索引 - 依赖注入(inject)异常 IConfiguration

asp.net-mvc-4 - RedCaptcha 3 次尝试失败后

azure - Kubernetes - 如何从 "internal Load Balancer"切换到 "ingress controller"

azure - WebJob Crontab 计划在整点运行,此后每 15 分钟运行一次

azure-web-app-service - Azure Webjob TextWriter 记录器在我的方法中间处理

azure - Microsoft azure 项目名称呈灰色

c# - 在什么情况下应该使用 ESB 来管理传入的 WCF 服务请求?H

oracle - Oracle 云和 Azure 之间的 VPN

azure - cron 表达式每天早上 8 点在 azure 中运行网络作业

.net - 添加存储表时触发 SendGrid 消息(Azure 函数)