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!