sidekiq-amigo 1.4.0 → 1.4.2

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: ef7c94e7a10ea6d0023d775d364242fb3f361bd782a142ce6e969756d4067d14
4
- data.tar.gz: a4fda58bbee1d07b9e3e009925d6ad7fd85d5cd378f837667b4ee2bb07adecb7
3
+ metadata.gz: d11b55a48aa6ca5d7da7217b242c10d13475138071ea22920adcd19a5c8569b2
4
+ data.tar.gz: 7d6166c366e1299b27e7128ce2db12792ef4cf74a57e932240cf7b288c49827c
5
5
  SHA512:
6
- metadata.gz: 8d86da5a86d2bbdb5251552ab925ddb7e2b14231c9ddce0ea26b9d2c35ce96227addb95345f4e9b309bca6c4951b13601237d62040cfde69776a4d84c08d90bc
7
- data.tar.gz: 38002ddf39af631ec5bee7ec6cdee6fdfb127094f41279719b53d4a85313444c80001a84b67bf10f5bc6c7e239adfa2aae6d4fda5ec4e8d6de6d13b6dc065ffa
6
+ metadata.gz: 61b2bfef602cb1afc8dd06715f717349850065aad462dc4b1a2f39fd4307f96d0d72aefa47b42c3223d71140cb9aee2497522b0efd3063129286a4d2649acb1a
7
+ data.tar.gz: 17a639b371af4fb0a42d34fa5bc9358ca4daff76790c70081d463442bdeb3e3d33f7c4959c3e48e2bc59b2d3ad1ae62c872c6afb7de9ba529deef3854ea85c47
data/lib/amigo/retry.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "sidekiq"
4
+ require "sidekiq/api"
4
5
 
5
6
  # Middleware so Sidekiq workers can use a custom retry logic.
6
7
  # See +Amigo::Retry::Retry+, +Amigo::Retry::Die+,
@@ -51,6 +52,12 @@ module Amigo
51
52
  end
52
53
  end
53
54
 
55
+ # Raise this error to finish the job. Usually used when there is a fatal error
56
+ # from deep in a job and they want to jump out of the whole thing.
57
+ # Usually you should log before raising this!
58
+ class Quit < Error
59
+ end
60
+
54
61
  class ServerMiddleware
55
62
  def call(worker, job, _queue)
56
63
  yield
@@ -60,15 +67,22 @@ module Amigo
60
67
  handle_die(worker, job, e)
61
68
  rescue Amigo::Retry::OrDie => e
62
69
  handle_retry_or_die(worker, job, e)
70
+ rescue Amigo::Retry::Quit
71
+ Sidekiq.logger.info("job_quit")
72
+ return
63
73
  end
64
74
 
65
75
  def handle_retry(worker, job, e)
66
76
  Sidekiq.logger.info("scheduling_retry")
77
+ job["error_class"] = e.class.to_s
78
+ job["error_message"] = e.to_s
67
79
  self.amigo_retry_in(worker.class, job, e.interval_or_timestamp)
68
80
  end
69
81
 
70
- def handle_die(_worker, job, _e)
82
+ def handle_die(_worker, job, e)
71
83
  Sidekiq.logger.warn("sending_to_deadset")
84
+ job["error_class"] = e.class.to_s
85
+ job["error_message"] = e.to_s
72
86
  payload = Sidekiq.dump_json(job)
73
87
  Sidekiq::DeadSet.new.kill(payload, notify_failure: false)
74
88
  end
data/lib/amigo/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Amigo
4
- VERSION = "1.4.0"
4
+ VERSION = "1.4.2"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-amigo
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lithic Technology
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-05 00:00:00.000000000 Z
11
+ date: 2023-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sidekiq