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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 682416738c55b9567c39530b31bfc92a8d9115b51c640494b067c9ff23cca65d
4
- data.tar.gz: 9239e634bea3dc41131c9a4deb56d5998b6f4745e891c43a90fad4c569008c0c
3
+ metadata.gz: c5dcd95e3e7a1229fa9beae808c6a8b066f9ad1196cab9823da13b4b4d5a0bd6
4
+ data.tar.gz: 5910380ebb1cfc32d6bcdb8eaeca810542031441b13edec7292bd9037d2015b1
5
5
  SHA512:
6
- metadata.gz: 127ae4b11fcc7651aeed81e9070a791460b2256fb2d308b559e70e9c4ba767d6c8cce5feed450e783c22415f84757e248d4b70de3fb27612317fb14283794b60
7
- data.tar.gz: 06e8e765a1f8a6fd55ce3c0405bd319e797c59d87f5f54cebdee9bba2804d888cd8f4765bb8e02935d5b96dde7c38a756df073610106d8df8243f5dc16694f7f
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.40.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.40"
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.40
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-10-21 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