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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f4972e2454dc135522a2daac209d83fd065822fd0dc56eaf6983626eea5171d4
4
- data.tar.gz: c77e9cc3155d2fa14dbf8a90b4c9795baecbd53edfae37a698679652e97cf06e
3
+ metadata.gz: c5dcd95e3e7a1229fa9beae808c6a8b066f9ad1196cab9823da13b4b4d5a0bd6
4
+ data.tar.gz: 5910380ebb1cfc32d6bcdb8eaeca810542031441b13edec7292bd9037d2015b1
5
5
  SHA512:
6
- metadata.gz: baa2c246b25ca4befc5701cba9dcc4585c0ea5002738186763215b91b3e0370ce72f805a5d6e9b6a27f423ded2cfb4f7f76ba2b089a93ae493d039037d838094
7
- data.tar.gz: aa0ae31f1682b3ad342f8c8e6e4b9dbce137c7ab58af6a316736d702113dc31b227017e2b2335ac57dad05a2e85b432598f5b38f90dff4a9e640bfaae08ff4cb
6
+ metadata.gz: db95db3250925cd15b59a3c639e81962774a98fd477867ff26d72a78a55bf2d3e22b29e7ce8839941bfbe804497240ce6c4df379c8073841b00a087cd84c8ae2
7
+ data.tar.gz: ffb9e8b59553584c3b26356c5b4ae298ed67e06f8a83cc354888ea30166f288b82249346a90e8a5de77e546526eb65b78fc82e81cf92a110a645f8f0f5e43f98
data/deploy.sh CHANGED
@@ -1,3 +1,3 @@
1
1
  echo "Did you update the version?"
2
2
  gem build backburner-allq.gemspec
3
- gem push backburner-allq-1.0.44.gem
3
+ gem push backburner-allq-1.0.45.gem
@@ -117,8 +117,8 @@ module Backburner
117
117
  @client.job_delete(job.id)
118
118
  end
119
119
 
120
- def release(job, _delay = 0)
121
- @client.release_put(job.id)
120
+ def release(job, delay = 0)
121
+ @client.release_put(job.id, delay: delay)
122
122
  end
123
123
 
124
124
  def bury(job)
@@ -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: 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
@@ -1,3 +1,3 @@
1
1
  module Backburner
2
- VERSION = "1.0.44"
2
+ VERSION = "1.0.45"
3
3
  end
@@ -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.44
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: 2022-12-30 00:00:00.000000000 Z
11
+ date: 2023-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: allq_rest