有没有办法在Rails中运行DelayedJob的多个实例?

时间:2011-10-01 20:32:53

标签: ruby-on-rails delayed-job

我不是指多个进程,我的意思是单独的实例。我认为。我可能会以错误的方式解决这个问题。

现在dj在我的应用程序中处理两件事:报告和图像处理/上传。问题是,人们可以随时创建一大堆报告作业,并且在所有这些报告运行之前,没有剩余的过程来处理图像。

如何设置DelayedJob以便我总能拥有至少一个专用于特定功能的proc?

这是在Rails 2.3.8上运行的prolideJob的集体分支。

2 个答案:

答案 0 :(得分:2)

您可以为可能解决问题的延迟作业设置优先级。将报告作业设置为低于图像处理的优先级,只有在没有要处理的图像时才会执行它们。

readme涵盖了handle_asynchronously优先使用的handle_asynchronously :my_method, :priority => 5 ,但语法基本上是:

{{1}}

默认情况下,所有内容都是优先级为零,这是最高优先级。

答案 1 :(得分:1)

DelayedJob 3.0.0pre支持命名队列,因此您可以拥有来自不同队列的作业池。