9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/gush/worker.rb', line 9
def perform(workflow_id, job_id)
setup_job(workflow_id, job_id)
job.payloads = 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)
mark_as_finished
enqueue_outgoing_jobs
else
mark_as_failed
report(:failed, start, error.message)
end
end
|