【发布时间】:2011-10-01 20:32:52
【问题描述】:
我不是指多个进程,我指的是单独的实例。我认为。我可能会走错路。
现在 dj 在我的应用程序中处理两件事:报告和图像处理/上传。问题是,人们可以随时创建一大堆报告作业,并且在所有这些报告运行之前没有剩余的流程来处理图像。
如何设置 DelayedJob 以便我始终可以拥有至少一个专用于特定功能的 proc?
这是集体理念的 DelayedJob 的分支,在 Rails 2.3.8 上运行。
【问题讨论】:
我不是指多个进程,我指的是单独的实例。我认为。我可能会走错路。
现在 dj 在我的应用程序中处理两件事:报告和图像处理/上传。问题是,人们可以随时创建一大堆报告作业,并且在所有这些报告运行之前没有剩余的流程来处理图像。
如何设置 DelayedJob 以便我始终可以拥有至少一个专用于特定功能的 proc?
这是集体理念的 DelayedJob 的分支,在 Rails 2.3.8 上运行。
【问题讨论】:
您可以为延迟的作业设置优先级,这可能会解决您的问题。将报告作业设置为低于图像处理的优先级,并且仅在没有要处理的图像时执行。
readme 涵盖了优先使用handle_asynchronously,但语法基本上是:
handle_asynchronously :my_method, :priority => 5
默认情况下,所有内容都是零优先级,即最高优先级。
【讨论】:
DelayedJob 3.0.0pre 支持命名队列,因此您可以为来自不同队列的作业提供工作人员池。
【讨论】: