2

我有一个代码可以在 Rails 中推动一项 resque 工作。

在那个工作课上,我唯一做的就是

Resque.logger.info("Hello");

在我启动我的 Resque 工作人员并对工作代码文件进行更改后,例如:

Resque.logger.info("Can I see this?");

我无法看到 Resque 记录器中反映的更改,除非我重新启动我的工作人员,否则它仍然会说“你好”。每次我对工作文件进行更改时,有什么方法可以避免重新启动 resque 工作人员。简而言之,我希望能够动态地更改我的代码,并且可能运行一个更快的命令来反映我的 chagnes 以便处理下一个作业。

我也一直保持

config.cache_classes = false

在我所有的环境配置文件中。

4

1 回答 1

0

我不认为你可以避免它。但是如果你有很多工人,你可以通过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

于 2013-09-16T14:48:50.217 回答