backburner-allq 1.0.40 → 1.0.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|