sidekiq-amigo 1.0.0 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/amigo/audit_logger.rb +1 -1
- data/lib/amigo/deprecated_jobs.rb +2 -1
- data/lib/amigo/job.rb +2 -2
- data/lib/amigo/router.rb +3 -1
- data/lib/amigo/scheduled_job.rb +0 -2
- data/lib/amigo/spec_helpers.rb +1 -2
- data/lib/amigo/version.rb +1 -1
- data/lib/amigo.rb +26 -20
- 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: 1ad3126cf6ef41459f944083e16b5c64a83a59e2df2617e238112b608c9d545c
|
4
|
+
data.tar.gz: c53b63fa0b89f7d5f8f7c84f9199ae23941aa400991d8835d0f11e272060fc13
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4e05313b891b464942f591bf63ab199bc586dff134779581621364a93e928014bc2f96f5184d1df367d1f2ef1be7e4a36b5af12351daca6fc9e7da723577221
|
7
|
+
data.tar.gz: 53b8a94510e1396c5fc779d36c9eeccb379ca02b11f5b9cc71822565b0b88874c381fda32c854e9addc664f1c08ec46ebafc6c5c9833f2f566140ae6c56b0fed
|
data/lib/amigo/audit_logger.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "amigo"
|
3
4
|
require "amigo/job"
|
4
5
|
|
5
6
|
# Put jobs here to die. If you just remove a job in Sidekiq, it may be queued up
|
@@ -31,7 +32,7 @@ class Amigo
|
|
31
32
|
def self.noop_class
|
32
33
|
cls = Class.new do
|
33
34
|
def _perform(*)
|
34
|
-
Amigo.log(self, :warn, "deprecated_job_invoked",
|
35
|
+
Amigo.log(self, :warn, "deprecated_job_invoked", {})
|
35
36
|
end
|
36
37
|
end
|
37
38
|
cls.extend(Amigo::Job)
|
data/lib/amigo/job.rb
CHANGED
data/lib/amigo/router.rb
CHANGED
data/lib/amigo/scheduled_job.rb
CHANGED
data/lib/amigo/spec_helpers.rb
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "
|
3
|
+
require "amigo"
|
4
4
|
|
5
5
|
class Amigo
|
6
6
|
module SpecHelpers
|
7
7
|
def self.included(context)
|
8
|
-
Sidekiq::Testing.inline!
|
9
8
|
context.before(:each) do |example|
|
10
9
|
Amigo.synchronous_mode = true if example.metadata[:async]
|
11
10
|
end
|
data/lib/amigo/version.rb
CHANGED
data/lib/amigo.rb
CHANGED
@@ -98,10 +98,9 @@ require "sidekiq-cron"
|
|
98
98
|
# Splay defaults to 30s; you may wish to always provide splay, whatever you think for your job.
|
99
99
|
#
|
100
100
|
class Amigo
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
require "amigo/router"
|
101
|
+
class Error < StandardError; end
|
102
|
+
|
103
|
+
class StartSchedulerFailed < Error; end
|
105
104
|
|
106
105
|
class << self
|
107
106
|
attr_accessor :structured_logging
|
@@ -118,7 +117,8 @@ class Amigo
|
|
118
117
|
end
|
119
118
|
|
120
119
|
def log(job, level, message, params)
|
121
|
-
|
120
|
+
params ||= {}
|
121
|
+
if self.structured_logging && !params.empty?
|
122
122
|
paramstr = params.map { |k, v| "#{k}=#{v}" }.join(" ")
|
123
123
|
message = "#{message} #{paramstr}"
|
124
124
|
end
|
@@ -180,6 +180,8 @@ class Amigo
|
|
180
180
|
# Install Amigo so that every publish will be sent to the AuditLogger job
|
181
181
|
# and will invoke the relevant jobs in registered_jobs via the Router job.
|
182
182
|
def install_amigo_jobs
|
183
|
+
require "amigo/audit_logger"
|
184
|
+
require "amigo/router"
|
183
185
|
return self.register_subscriber do |ev|
|
184
186
|
self._subscriber(ev)
|
185
187
|
end
|
@@ -190,21 +192,25 @@ class Amigo
|
|
190
192
|
Amigo::AuditLogger.perform_async(event_json)
|
191
193
|
Amigo::Router.perform_async(event_json)
|
192
194
|
end
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
#
|
199
|
-
#
|
200
|
-
#
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
195
|
+
|
196
|
+
def register_job(job)
|
197
|
+
self.registered_jobs << job
|
198
|
+
end
|
199
|
+
|
200
|
+
# Start the scheduler.
|
201
|
+
# This should generally be run in the Sidekiq worker process,
|
202
|
+
# not a webserver process.
|
203
|
+
def start_scheduler(load_from_hash=Sidekiq::Cron::Job.method(:load_from_hash))
|
204
|
+
hash = self.registered_scheduled_jobs.each_with_object({}) do |job, memo|
|
205
|
+
self.log(nil, :info, "scheduling_job_cron", {job_name: job.name, job_cron: job.cron_expr})
|
206
|
+
memo[job.name] = {
|
207
|
+
"class" => job.name,
|
208
|
+
"cron" => job.cron_expr,
|
209
|
+
}
|
210
|
+
end
|
211
|
+
load_errs = load_from_hash.call(hash) || {}
|
212
|
+
raise StartSchedulerFailed, "Errors loading sidekiq-cron jobs: %p" % [load_errs] unless load_errs.empty?
|
213
|
+
end
|
208
214
|
end
|
209
215
|
|
210
216
|
class Event
|
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
|
+
version: 1.1.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-03-
|
11
|
+
date: 2022-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sidekiq
|