lib/gush/worker.rb in gush-2.0.1 vs lib/gush/worker.rb in gush-2.0.2

- old
+ new

@@ -4,10 +4,16 @@ module Gush class Worker < ::ActiveJob::Base def perform(workflow_id, job_id) setup_job(workflow_id, job_id) + if job.succeeded? + # Try to enqueue outgoing jobs again because the last job has redis mutex lock error + enqueue_outgoing_jobs + return + end + job.payloads = incoming_payloads error = nil mark_as_started @@ -73,8 +79,10 @@ if out.ready_to_start? client.enqueue_job(workflow_id, out) end end end + rescue RedisMutex::LockError + Worker.set(wait: 2.seconds).perform_later(workflow_id, job.name) end end end