2017-02-18 8 views

答えて

0

基本的にsidekiqを調整することができますので、私が読んでいるものから、あなたのキュー作業FIFOを選んでください。sidekiqは並列処理を処理することを目的としていますが、並行性を1に変更できます。 1つの仕事はその時にのみ実行されるか、ここで何が起きているのかを試してみてください。

https://github.com/mperham/sidekiq/wiki/Best-Practices#3-embrace-concurrency

0

あなたが特定のActiveJob仕事の唯一のインスタンスが一度に実行されることを確認する場合は、ミューテックスロックを実装します。 redis-mutexのような宝石は簡単です(あなたが既にサイドキック付きのレディスを使用している場合):

def perform 
    RedisMutex.with_lock(:your_lock_name, expire: XXX_SECONDS) do 
    # do something exclusively 
    rescue RedisMutex::LockError 
    Rails.logger.debug "Another job is running, exiting ..." 
    end 
end 
関連する問題