我有一个代码在Rails中推送resque作业。
在那个职业班里,我唯一能做的就是
Resque.logger.info("Hello");
启动Resque工作人员并对作业代码文件进行更改后,例如:
Resque.logger.info("Can I see this?");
我无法看到Resque记录器中反映的更改,除非我重新启动我的工作人员,否则仍会显示“Hello”。 有没有办法避免每次我更改我的作业文件时重新启动resque工作者。简而言之,我希望动态地能够更改我的代码,并且可能运行更快的命令来反映我的chagnes,以便处理下一个作业。
我也保留了
config.cache_classes = false
在我的所有环境配置文件中。
答案 0 :(得分:0)
我认为你不能避免它。但是如果你有很多工人,你可以使用foreman
只用一个命令来启动它们。
使用foreman,您可以声明运行应用程序所需的各种过程。
首先,安装领班:gem install foreman
然后,创建名为Procfile
的文件(没有任何扩展名)。
在Procfile
:
worker-name1: bundle exec rake resque:work QUEUE=*
worker-name2: bundle exec rake resque:work QUEUE=*..
要启动它,请输入以下行:foreman start
您将看到如下输出:
17:21:48 worker-name1.1 | started with pid 20571
17:21:48 worker-name2.1 | started with pid 20573
https://github.com/ddollar/foreman
http://blog.daviddollar.org/2011/05/06/introducing-foreman.html