我有一个延迟的工作队列,其中包含特别慢的运行任务,我希望由其自己的专用工作人员处理,因此风险较小,它将阻塞其余的工作人员管道。
I have a delayed job queue which contains particularly slow running tasks, which I want to be crunched by its own set of dedicated workers, so there is less risk it'll bottleneck the rest of the worker pipeline.
RAILS_ENV =生产脚本/ delayed_job --queue = super_slow_stuff开始
但是,我还希望为所有其他队列提供一个通用工作池,希望不必单独指定它们(因为它们的名称等也经常更改/添加)。类似于以下内容:
However I then also want a general worker pool for all other queues, hopefully without having to specify them seperately (as their names etc are often changed/added too). Something akin to:
RAILS_ENV =生产脚本/延迟工作--except-queue = super_slow_stuff开始
我可以使用通配符 * 字符,但是我想这也会导致第二个工作人员也选择超级慢的工作?
I could use the wildcard * charecter but I imagine this would cause the second worker to pickup the super slow jobs too?
对此有任何建议吗?
推荐答案不幸的是,此功能未能在延迟中实现工作。 请参阅: github/collectiveidea/delayed_job/pull/466 github/collectiveidea/delayed_job/pull/901
Unfortunately this functionality not realized in delayed jobs. See: github/collectiveidea/delayed_job/pull/466 github/collectiveidea/delayed_job/pull/901
您可以分叉延迟作业存储库并应用> github/collectiveidea/delayed_job/pull中的简单补丁/ 466 。 然后使用您的GitHub存储库,但请投票给 github/collectiveidea/delayed_job/pull/466 使其最终合并到上游。
You may fork delayed jobs repository and apply the simple patches from github/collectiveidea/delayed_job/pull/466. Then use your GitHub repo, but please vote into github/collectiveidea/delayed_job/pull/466 to make it merged finally into upstream.
更新: > 我编写了自己排除队列的选项。它在(exclude_queues)分支中: github/one- more-alex / delayed_job / tree / exclude_queues github/one-more-alex/delayed_job_active_record/tree/exclude_queues
Readme.md中包含的选项说明
Options description included in Readme.md
有关排除的部分。
# Option --exclude-specified-queues will do inverse of queues processing by skipping onces from --queue, --queues. # If both --pool=* --exclude-specified-queues given, no exclusions will by applied on "*".
If EXCLUDE_SPECIFIED_QUEUES set to YES, then queues defined by QUEUE, QUEUES will be skipped instead. See opton --exclude-specified-queues description for specal case of queue "*"
如果严格回答问题,则致电一般工人将像这样:
If answer strictly on question, the calling of general worker will be like:
RAILS_ENV=production script/delayed_job --queue=super_slow_stuff --exclude-specified-queues start警告 请不要,那将不支持DelayedJobs和按原样放置的代码希望它会有用。 相应的拉取请求由我发出 github/collectiveidea/delayed_job / pull / 1019
也用于Active Record后端:> github/collectiveidea/delayed_job_active_record/pull/151
Also for Active Record backend: github/collectiveidea/delayed_job_active_record/pull/151
仅支持ActiveRecord后端。
Only ActiveRecord backend supported.
更多推荐
延迟的作业排除队列
发布评论