0

Resque 可以同时运行许多类似的作业吗?如果是这样,您将如何设置工人来执行此操作?

4

3 回答 3

4

我会看一下Resque Pool gem,它可以很容易地为不同的队列设置多个工作人员。然后,您可以按队列对类似任务进行分组。

如果您还没有使用某些东西进行进程监控,resque-pool 可以帮助您通过单个守护进程管理您的工作。它还为您提供了一些方法来监控您的员工正在发生的事情。此外,它还允许您通过一个简单的 yaml 文件轻松更改每个队列正在运行的工作人员数量。

于 2011-06-28T16:58:28.853 回答
3

如果将COUNT选项传递给 rake 任务,则可以运行多个工作程序:

COUNT=5 QUEUE=* rake resque:workers

在生产中,您可以使用类似的东西God来保持您的流程运行。Resque 项目有一个示例配置脚本,它允许多个工作人员。

于 2011-06-28T16:57:31.590 回答
0

如果您使用 monit 进行监控,请注意每个工作人员有一个 pid 文件

#!/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
于 2011-06-28T17:04:07.770 回答