如何从 sidekiq worker 调用另一个 worker 并在不暂停 child worker 的情况下监控其进度
How to call another worker from sidekiq worker and monitor its progress without pausing child worker
我目前正在从 Worker1 调用 Worker2 并尝试监视 Worker2 的进度。问题是,我监控 Worker2 进度的方式(通过 while 循环)导致 Worker2 永远不会 运行.
这是我得到的:
Worker2.perform_async(@project_assessment.id)
while true
if @project_assessment.project.status != 'completed'
sleep 20
end
end
generate_report
notify_user
Worker2 实际上从未 运行 因为我的 while 循环。但是Worker2在完成的时候会将项目状态更新为completed,那么如何在不影响Worker2性能的情况下正确监控呢?
您在这里看到的与 Sidekiq Workflow 类似。但这仅适用于付费的 Sidekiq-Pro 版本。
我目前正在从 Worker1 调用 Worker2 并尝试监视 Worker2 的进度。问题是,我监控 Worker2 进度的方式(通过 while 循环)导致 Worker2 永远不会 运行.
这是我得到的:
Worker2.perform_async(@project_assessment.id)
while true
if @project_assessment.project.status != 'completed'
sleep 20
end
end
generate_report
notify_user
Worker2 实际上从未 运行 因为我的 while 循环。但是Worker2在完成的时候会将项目状态更新为completed,那么如何在不影响Worker2性能的情况下正确监控呢?
您在这里看到的与 Sidekiq Workflow 类似。但这仅适用于付费的 Sidekiq-Pro 版本。