我已经准备好了一些网络工作,每一个都响应了一些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
} 我应该把每一个触发点分开到一个单独的工作中吗?是否有任何理由说明为什么继续这样的路径是一个坏主意,即它可以触发的队列越多,由于线程限制而执行的函数越少?
发布于 2016-11-21 16:26:26
您所做的是一种常见的方法-- WebJobs SDK JobHost设计用于处理许多不同的作业函数,所有这些功能都在同一个应用程序中。诚然,单个主机中的所有作业功能都将共享相同的进程/内存空间和限制,但对于大多数场景来说,这不是一个问题,也是推荐的方法。
具体来说,对于QueueTrigger,您的每个函数将有效地轮询新工作,当工作可用时,每个函数将以16批(通过JobHostConfiguration.Queues配置)的方式提取消息,并并行处理它们。
如果需要,还可以通过增加运行WebJob的实例数量来扩展。然后,每个实例将与其他实例协作处理更多的负载。
https://stackoverflow.com/questions/40720293
复制相似问题