2011-10-01 87 views
0

我不是指多个进程,而是指单独的实例。我认为。我可能会以这种错误的方式去做。有没有办法在Rails中运行DelayedJob的多个实例?

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

我该如何设置DelayedJob,以便始终至少有一个proc专用于特定功能?

这是collectiveeda的DelayedJob的分支,运行在Rails 2.3.8上。

回答

2

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

使用handle_asynchronously具有优先覆盖在readme但语法基本上是:

handle_asynchronously :my_method, :priority => 5 

默认情况下,一切都是零优先级是最高优先级。

1

DelayedJob 3.0.0pre支持命名队列,因此您可以为通过不同队列的作业创建工作池。

相关问题