Can Resque可以同时运行多个类似的作业吗?如果是这样,你将如何建立工人来做到这一点?可以Resque并行运行作业吗?
回答
如果传递一个COUNT
选项rake任务,你可以同时运行多个工人:
COUNT=5 QUEUE=* rake resque:workers
在生产中,你可以使用类似God
,让您的进程运行。 Resque项目有一个sample configuration script,允许多个工作人员。
我想看看Resque Pool gem,它可以很容易地为不同的队列设置多个工作人员。然后你可以按队列分组类似的任务。
如果您还没有使用某些进程进行监控,resque-pool可以帮助您通过一个deamon管理您的作品。它还为您提供了几种方法来监控工人的状况。此外,它还允许您通过简单的yaml文件轻松更改每个队列正在运行的工作人员数量。
这与Dylan的解决方案有什么不同? –
resque-pool有一个主守护程序,可以不断确保您拥有配置的工作人员数量。虽然monit或god也可以这样做,但resque-pool守护进程负载你的环境,然后分出父进程。这意味着如果您使用CoW友好的Ruby(例如REE),您将看到相当大量的RAM节省,因为替换该进程仍将受益于共享内存。通过monit或god重新启动的进程将拥有引导环境的完整内存副本。 – nirvdrum
如果你的monit监测小心有每个工人
#!/bin/sh
cd <path of app>/current/
for i in 3;
do
VVERBOSE=1 PIDFILE=<path of app>/shared/pids/resque_$i.pid RAILS_ENV=production QUEUE=name_of_queue bundle exec rake environment resque:work > <path of app>/shared/log/resque_$i.log
done
- 1. resque和resque-scheduler作业可以并行运行吗?
- 2. 运行并行作业
- 3. Quartz Scheduler可以串行运行作业吗?
- 4. 我们可以在DataStage中同时运行多个并行作业吗?
- 5. junit测试可以并行运行吗?
- 6. 可以并行运行Junit测试吗?
- 7. 你可以并行运行Xcuitests吗?
- 8. nspec可以运行并行测试吗?
- 9. 可以并行运行iis6和iis7吗?
- 10. 我可以在Oozie中运行py spark作为shell作业吗?
- 11. Resque worker可以在没有运行redis副本的情况下运行吗?
- 12. 我们可以强制在APScheduler作业存储中运行作业吗?
- 13. 主jenkins可以在远程jenkins上运行作业吗?
- 14. 在故事中运行并行作业
- 15. rails backgroundjob并行运行作业?
- 16. 并行运行一个作业
- 17. 并行运行Cron作业(PHP)
- 18. 在Jenkins中运行并行作业
- 19. 并行PowerShell作业未运行命令
- 20. 可以并排运行IIS和Tomcat吗?
- 21. Resque没有运行工人从队列中选择作业 - Rails
- 22. Resque + Sinatra + Heroku如何连续运行作业
- 23. jenkins可以在运行作业时隐藏其“执行shell”命令吗?
- 24. 作为cronjob可以运行Pygame吗?
- 25. mysqli连接可以并行工作吗?
- 26. ARM和NEON可以并行工作吗?
- 27. 是否可以强制并行作业在单独的Sidekiq进程中运行?
- 28. 可以执行程序但运行程序错误的作业?
- 29. 可以Azure运行WPF吗?
- 30. Python可以运行PyPy吗?
就是这样一个pid文件?排队工作时是否需要做额外的工作,或者Resque会自动将每项工作委派给不同的工作人员?我是否也需要使用“上帝”来管理这些平行工作,还是额外的东西? –
'上帝'只是一种让你的程序在生产中运行的方式;绝对不**需要**。队列的本质是每当添加新工作时,下一个可用的工作人员都会接受它。所以如果你有5个工人和5个工作,每个工作人员都会运行一个工作(这是一个总体概括,尽管 - 我不熟悉Resque的内部知道他们如何专门处理这个工作 - 例如,如果第一个工人在第五个工作分配之前完成工作,第一个工人可以拿到它而不是最后一个工人)。 –
很酷,谢谢。所以,如果我一次有很多很多类似的工作(我可能需要同时处理1000个工作),我是否应该启动大量工作人员?还是有更好的策略呢? –