简体   繁体   English

延迟的工作人员需要从事工作

[英]Delayed job workers takes running job

My environment: CentOS, Rails 4, Ruby 2. 我的环境:CentOS,Rails 4,Ruby 2。

I'm running in Delayed Job infinite loop that getting in real time information from some another site. 我在“延迟作业”无限循环中运行,该循环从其他站点获取实时信息。

The task is to run simultaniously many processes to get information from different sites. 任务是同时运行许多流程,以从不同的站点获取信息。 For each new process I add it to DJ queue by running search_engine.delay.track! 对于每个新进程,我都可以通过运行search_engine.delay.track!将其添加到DJ队列中search_engine.delay.track! .

So when I run one worker it successfully takes first job from queue and when job complete takes next. 因此,当我运行一个工作程序时,它成功地从队列中获取了第一份工作,而当工作完成时,它又获得了下一份工作。 When I run more than one worker by ./bin/delayed_job -n5 start every DJ worker takes first job in queue and starts to track! 当我通过./bin/delayed_job -n5 start运行多个工作人员时,每个DJ工作人员都会在队列中获得第一份工作并开始track! it. 它。 But I want them to take only jobs, that was not been taked by other workers. 但是我希望他们只接受其他工人没有的工作。

It was because of Delayed::Worker.max_run_time = 0 . 这是因为Delayed::Worker.max_run_time = 0 The DJ thought, that work already done and runs it again. DJ认为该工作已经完成,然后再次运行。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM