当Java上的Queue触发Function时,我正在考虑使用这种解决方案。我试图了解如何更有效地配置batchSize和newBatchThreshold。我想在下面提及我设法找到的内容。一旦发现我的推理有误,请立即纠正我:
- 功能在1个CPU内核环境上执行;
- 默认情况下,该函数以16个大小批量轮询来自Queue的消息,并以 parallel (从文档中获取)执行它们;
所以我得出一个结论:
- 如果消息需要占用大量CPU的任务-将它们依次执行 ;
所以我得出一个结论:
- 由于消息的处理是在同一时间(批到达时)开始的,因此处理更多最后的消息会花费 越来越长 (已通过实验确认);
- 所有这些越来越长的处理都是 billable (尽管Function的主体执行时间减少了10倍);
所以我得出一个结论:
- 对于CPU密集型任务,应该将batchSize和newBatchThreshold都设置为1,并且仅对于非CPU密集型任务(看起来仅是IO密集型任务)可以有所不同。
这有意义吗?