lib/gush/worker.rb in gush-0.3 vs lib/gush/worker.rb in gush-0.3.1

- old
+ new

@@ -7,34 +7,30 @@ sidekiq_options retry: false def perform(workflow_id, job_id) setup_job(workflow_id, job_id) - job.payloads = incoming_payloads + job.payloads_hash = incoming_payloads start = Time.now report(:started, start) failed = false error = nil mark_as_started begin job.work - rescue Exception => e - failed = true - error = e - end - - unless failed - report(:finished, start) + rescue Exception => error + mark_as_failed + report(:failed, start, error.message) + raise error + else mark_as_finished + report(:finished, start) enqueue_outgoing_jobs - else - mark_as_failed - report(:failed, start, error.message) end end private attr_reader :client, :workflow, :job @@ -49,12 +45,13 @@ end def incoming_payloads payloads = {} job.incoming.each do |job_name| - payloads[job_name] = client.load_job(workflow.id, job_name).output_payload + job = client.load_job(workflow.id, job_name) + payloads[job.klass.to_s] ||= [] + payloads[job.klass.to_s] << {:id => job.name, :payload => job.output_payload} end - payloads end def mark_as_finished job.finish!