2014-06-23 20 views
0

我是新來sidekiq,我剛剛創建sidekiq工人,當我運行sidekiq工人,僅執行第一個rake任務如何使用sidekiq worker在單個rake中執行多個參數?

我想用的參數

兩種不同的組合來執行單耙
def perform 
    Rake::Task['test:fetch'].invoke("foo", "bar", 1, 1) 
    Rake::Task['test:fetch'].invoke("foo1", "bar1", 1, 1) 
end 

如何以5分鐘的間隔執行上述操作,我應該運行耙子2次還是其他任何方法來傳遞兩個不同的參數?

回答

0

這就是Rake的工作原理。閱讀有關任務的耙子文檔並調用()

0

您需要在調用invoke方法後重新啓用耙子任務,或使用execute以避免重新啓用。

使用調用,您的代碼可能是這樣的:

def perform 
    Rake::Task['test:fetch'].invoke("foo", "bar", 1, 1) 
    Rake::Task['test:fetch'].reenable 
    Rake::Task['test:fetch'].invoke("foo1", "bar1", 1, 1) 
end 

使用執行,你的代碼可能是這樣的:

def perform 
    task_args = {:arg1 => "foo", :arg2 => "bar", :arg3 => 1, :arg4 => 1 } 
    Rake::Task['test:fetch'].execute(Rake::TaskArguments.new(task_args.keys, task_args.values)) 

    task_args = {:arg1 => "foo1", :arg2 => "bar1", :arg3 => 1, :arg4 => 1 } 
    Rake::Task['test:fetch'].execute(Rake::TaskArguments.new(task_args.keys, task_args.values) 
end 

對於一些更多解釋見這裏:Why is Rake not able to invoke multiple tasks consecutively?

相關問題