Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure WebJob QueueTrigger-每个函数的限制_Azure_Azure Webjobs_Azure Webjobssdk - Fatal编程技术网

Azure WebJob QueueTrigger-每个函数的限制

Azure WebJob QueueTrigger-每个函数的限制,azure,azure-webjobs,azure-webjobssdk,Azure,Azure Webjobs,Azure Webjobssdk,我已经准备好了一些webjob,每个webjob都响应一些队列触发器,例如 public static void ProcessMessage([QueueTrigger("XXXXXXX")] string message, TextWriter log) { //processing message } public static void ProcessMessage([QueueTrigger("YYYYYY")] string message, TextWriter log

我已经准备好了一些webjob,每个webjob都响应一些
队列触发器
,例如

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的实例数来扩展。然后,每个实例将与其他实例协同工作,以处理更多负载。

看看这个答案@Thomas,谢谢你,这非常有用,让我考虑至少拆分其中一些实例。你有没有计划支持每个触发器而不是整个作业主机的
MaxDequeueCount
?在我的例子中,这似乎是有意义的,因为在我的管道中毒之前,多个队列可以有不同的出列计数,这取决于它们的用途。