带有Java的Azure函数:有效配置batchSize和newBatchThreshold

时间:2018-07-12 13:34:38

标签: azure azure-functions

当Java上的Queue触发Function时,我正在考虑使用这种解决方案。我试图了解如何更有效地配置batchSize和newBatchThreshold。我想在下面提及我设法找到的内容。一旦发现我的推理有误,请立即纠正我:

  1. 功能在1个CPU内核环境上执行;
  2. 默认情况下,该函数以16个大小批量轮询来自Queue的消息,并以 parallel (从文档中获取)执行它们;

所以我得出一个结论:

  1. 如果消息需要占用大量CPU的任务-将它们依次执行 ;

所以我得出一个结论:

  1. 由于消息的处理是在同一时间(批到达时)开始的,因此处理更多最后的消息会花费 越来越长 (已通过实验确认);
  2. 所有这些越来越长的处理都是 billable (尽管Function的主体执行时间减少了10倍);

所以我得出一个结论:

  1. 对于CPU密集型任务,应该将batchSize和newBatchThreshold都设置为1,并且仅对于非CPU密集型任务(看起来仅是IO密集型任务)可以有所不同。

这有意义吗?

0 个答案:

没有答案