pollForActivityTask
方法对请求保持打开轮询的最长时间为60秒。我目前正在每分钟调度一个cron作业来调用我的活动工作文件,以便我的活动工作者机器不断轮询工作。
这是连续队列覆盖的正确方法吗?
答案 0 :(得分:1)
Java Flow SDK的工作方式以及创建ActivityWorker
的方式,为其提供任务列表,域,活动实现和一些其他设置。您同时设置了setPollThreadCount
和setTaskExecutorSize
。轮询线程长轮询,然后将工作交给执行程序线程,以避免阻止进一步的轮询。您可以在start
上调用ActivityWorker
来启动它,当想要关闭工作线程时,您可以调用其中一种关闭方法(通常最好调用shutdownAndAwaitTermination
)。
基本上你的工人长寿,需要处理几个因素:
答案 1 :(得分:0)
我最终使用了一个解决方案,其中我有另一个脚本文件,每分钟都由一个cron作业调用。此文件检查活动工作程序是否已在后台运行(如果是,我假设已在当前服务器上处理工作流程执行)。
如果没有活动工作人员,那么之前的长轮询已经完成,我们再次启动活动工作人员脚本。如果已经存在活动工作者,则之前的轮询发现工作流程执行并开始处理,因此我们不会启动另一个活动工作程序。