backburner-allq 1.0.44 → 1.0.45
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/deploy.sh +1 -1
- data/lib/backburner/allq_wrapper.rb +2 -2
- data/lib/backburner/job.rb +7 -2
- data/lib/backburner/version.rb +1 -1
- data/lib/backburner/worker.rb +25 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c5dcd95e3e7a1229fa9beae808c6a8b066f9ad1196cab9823da13b4b4d5a0bd6
|
4
|
+
data.tar.gz: 5910380ebb1cfc32d6bcdb8eaeca810542031441b13edec7292bd9037d2015b1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db95db3250925cd15b59a3c639e81962774a98fd477867ff26d72a78a55bf2d3e22b29e7ce8839941bfbe804497240ce6c4df379c8073841b00a087cd84c8ae2
|
7
|
+
data.tar.gz: ffb9e8b59553584c3b26356c5b4ae298ed67e06f8a83cc354888ea30166f288b82249346a90e8a5de77e546526eb65b78fc82e81cf92a110a645f8f0f5e43f98
|
data/deploy.sh
CHANGED
data/lib/backburner/job.rb
CHANGED
@@ -9,7 +9,7 @@ module Backburner
|
|
9
9
|
class JobFormatInvalid < RuntimeError; end
|
10
10
|
class RetryJob < RuntimeError; end
|
11
11
|
|
12
|
-
attr_accessor :task, :body, :name, :args
|
12
|
+
attr_accessor :task, :body, :name, :args, :stats_releases
|
13
13
|
|
14
14
|
# Construct a job to be parsed and processed
|
15
15
|
#
|
@@ -78,6 +78,10 @@ module Backburner
|
|
78
78
|
raise e
|
79
79
|
end
|
80
80
|
|
81
|
+
def stats_releases
|
82
|
+
@task.releases
|
83
|
+
end
|
84
|
+
|
81
85
|
def bury
|
82
86
|
@hooks.invoke_hook_events(job_name, :on_bury, *args)
|
83
87
|
@task.bury
|
@@ -85,7 +89,7 @@ module Backburner
|
|
85
89
|
|
86
90
|
def retry(count, delay)
|
87
91
|
@hooks.invoke_hook_events(job_name, :on_retry, count, delay, *args)
|
88
|
-
@task.release(delay
|
92
|
+
@task.release(delay)
|
89
93
|
end
|
90
94
|
|
91
95
|
# Returns the class for the job handler
|
@@ -116,6 +120,7 @@ module Backburner
|
|
116
120
|
nil
|
117
121
|
end
|
118
122
|
|
123
|
+
|
119
124
|
# Timeout job within specified block after given time.
|
120
125
|
#
|
121
126
|
# @example
|
data/lib/backburner/version.rb
CHANGED
data/lib/backburner/worker.rb
CHANGED
@@ -161,6 +161,7 @@ module Backburner
|
|
161
161
|
rescue Backburner::Job::JobFormatInvalid => e
|
162
162
|
log_error exception_message(e)
|
163
163
|
rescue StandardError => e # Error occurred processing job
|
164
|
+
log_error "Exception during process"
|
164
165
|
log_error exception_message(e) unless e.is_a?(Backburner::Job::RetryJob)
|
165
166
|
|
166
167
|
unless job
|
@@ -168,6 +169,8 @@ module Backburner
|
|
168
169
|
return
|
169
170
|
end
|
170
171
|
|
172
|
+
handle_failure_for_job(job)
|
173
|
+
|
171
174
|
handle_error(e, job.name, job.args, job)
|
172
175
|
end
|
173
176
|
else
|
@@ -176,6 +179,28 @@ module Backburner
|
|
176
179
|
job
|
177
180
|
end
|
178
181
|
|
182
|
+
|
183
|
+
def handle_failure_for_job(job)
|
184
|
+
log_error "Handle failure for job"
|
185
|
+
|
186
|
+
num_retries = job.task.releases
|
187
|
+
max_job_retries = resolve_max_job_retries(job.job_class)
|
188
|
+
|
189
|
+
retry_status = "failed: attempt #{num_retries+1} of #{max_job_retries+1}"
|
190
|
+
|
191
|
+
if num_retries < max_job_retries # retry again
|
192
|
+
retry_delay = resolve_retry_delay(job.job_class)
|
193
|
+
delay = resolve_retry_delay_proc(job.job_class).call(retry_delay, num_retries) rescue retry_delay
|
194
|
+
log_error("Delay should be #{delay}")
|
195
|
+
job.retry(num_retries + 1, delay)
|
196
|
+
log_job_end(job.name, "#{retry_status}, retrying in #{delay}s") if job_started_at
|
197
|
+
else # retries failed, bury
|
198
|
+
job.bury
|
199
|
+
log_job_end(job.name, "#{retry_status}, burying") if job_started_at
|
200
|
+
end
|
201
|
+
|
202
|
+
end
|
203
|
+
|
179
204
|
protected
|
180
205
|
|
181
206
|
# Return a new connection instance
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: backburner-allq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.45
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Malcolm
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: allq_rest
|