backburner-allq 1.0.44 → 1.0.46

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f4972e2454dc135522a2daac209d83fd065822fd0dc56eaf6983626eea5171d4
4
- data.tar.gz: c77e9cc3155d2fa14dbf8a90b4c9795baecbd53edfae37a698679652e97cf06e
3
+ metadata.gz: 2bd17104136199c1837969e45bea3d40ffaa05e7be78c9e78e6538e183b5371d
4
+ data.tar.gz: 1e71e0aeac0ccaf8696d6808074d79de6dc80052b64543a66169464609d94bdb
5
5
  SHA512:
6
- metadata.gz: baa2c246b25ca4befc5701cba9dcc4585c0ea5002738186763215b91b3e0370ce72f805a5d6e9b6a27f423ded2cfb4f7f76ba2b089a93ae493d039037d838094
7
- data.tar.gz: aa0ae31f1682b3ad342f8c8e6e4b9dbce137c7ab58af6a316736d702113dc31b227017e2b2335ac57dad05a2e85b432598f5b38f90dff4a9e640bfaae08ff4cb
6
+ metadata.gz: fad035b104c886a80812c775747a8d17007132eb37ac9838f759801a44fdd8e821710693331f0d5152d71c38c90f690667b75fcbffef6152a2d49d7226468bb7
7
+ data.tar.gz: fccfb3743b106a1aea48baf4274edb52d436e2482b86d4d1aaa8988fcded262e7260cea2874aefaa43176f63650c294c4fdaf0f5267fe1d0c3c12136de6b3a8f
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.46.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.46"
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,27 @@ 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
+ job.retry(num_retries + 1, delay)
195
+ log_job_end(job.name, "#{retry_status}, retrying in #{delay}s") if job_started_at
196
+ else # retries failed, bury
197
+ job.bury
198
+ log_job_end(job.name, "#{retry_status}, burying") if job_started_at
199
+ end
200
+
201
+ end
202
+
179
203
  protected
180
204
 
181
205
  # 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.46
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