簡體   English   中英

並發延遲工作

[英]concurrency in delayed_jobs

我有ROR應用程序,並且使用rake job:work運行了1個delay_job進程。 ROR應用程序將Job添加到多個隊列中。

假設我們有隊列1和隊列2。
我的問題是隊列1中的任務和隊列2中的任務將同時執行嗎?

當前在我的應用程序中運行rake job:work進程后,僅產生1個線程,該線程先執行queue1任務,然后執行queue2任務。
如果必須並行執行,則必須運行job:work的兩個rake任務。

它是正確的行為,還是可以在job:work的1個rake任務中同時運行。 什么是延遲工作中的工人。 延遲工作與工人互換使用

謝謝
普里揚卡

不,一個工作者不能同時運行兩個作業,為此您需要運行多個進程。

在您描述的示例中,您正在啟動一個在前台運行的rake job:workrake job:work ),但是您可以做的是通過運行bin/delayed_job來代替它們作為后台工作程序( script/delayed_job對於早期版本)。 該命令具有多個選項,可用於指定您希望delay_job起作用的方式。

選項之一是-n--number_of_workers=workers 這意味着您可以通過運行以下命令來啟動兩個工作程序:

bundle exec bin/delayed_job --number_of_workers=2 start

也可以將某些工作人員專用於僅運行特定隊列中的作業,或者僅運行高優先級的作業。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM