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