当使用 now() 方法调用异步作业时,play 如何处理它们?
它们是立即执行,还是存储在队列中并由固定数量的线程处理?我们对此有什么样的控制权?
最佳答案
当您调用 now()
,您的工作被放入 ScheduledThreadPoolExecutor通过 submit()
.由于执行程序使用固定大小的池,您的作业可能最终会排队。此外,该池与您的 scheduled jobs 共享。 ,因此除了您按需生成的任何工作之外,您还可能与他们发生争执。
您可以在应用程序的配置中调整池的大小,使用 play.jobs.pool
环境。默认值为 10。
关于asynchronous - Play Framework 作业队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6195523/