sidekiq-amigo 1.6.0 → 1.6.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 +4 -4
- data/lib/amigo/audit_logger.rb +5 -1
- data/lib/amigo/scheduled_job.rb +14 -3
- data/lib/amigo/version.rb +1 -1
- 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: d5224634ebf95a2fcaefc764d07114cc77b2feed22a15e736eec934d8eba84b0
|
4
|
+
data.tar.gz: 2e49a507f4e6d47e7ce25b676293738591807bc47dadf47e1fdbcb634d5a9df5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fa9617859526003317496d860e07119a11e8d0d58e66382360078a74463760b78da8516d215a0922fd40ee5bcc4d5e35421be2aa393df1f0a0709c941c367560
|
7
|
+
data.tar.gz: 99876ed52f35b972bdc1a68a507c29b87f6a0aa5db6c2ae7738e203da8c66cb5dd01a4c2489fd4a923f117e84af308ea121f2be40ea95e5a3426485da114f216
|
data/lib/amigo/audit_logger.rb
CHANGED
@@ -6,8 +6,12 @@ module Amigo
|
|
6
6
|
class AuditLogger
|
7
7
|
include Sidekiq::Worker
|
8
8
|
|
9
|
+
def audit_log_level
|
10
|
+
return :info
|
11
|
+
end
|
12
|
+
|
9
13
|
def perform(event_json)
|
10
|
-
Amigo.log(self,
|
14
|
+
Amigo.log(self, self.audit_log_level, "async_job_audit",
|
11
15
|
event_id: event_json["id"],
|
12
16
|
event_name: event_json["name"],
|
13
17
|
event_payload: event_json["payload"],)
|
data/lib/amigo/scheduled_job.rb
CHANGED
@@ -22,11 +22,12 @@ module Amigo
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def perform(*args)
|
25
|
-
|
25
|
+
splay = self.class.splay_duration
|
26
|
+
if splay.nil? || args == [true]
|
27
|
+
self._perform
|
28
|
+
elsif args.empty?
|
26
29
|
jitter = rand(0..self.class.splay_duration.to_i)
|
27
30
|
self.class.perform_in(jitter, true)
|
28
|
-
elsif args == [true]
|
29
|
-
self._perform
|
30
31
|
else
|
31
32
|
raise "ScheduledJob#perform must be called with no arguments, or [true]"
|
32
33
|
end
|
@@ -62,6 +63,16 @@ module Amigo
|
|
62
63
|
self.cron_expr = expr
|
63
64
|
end
|
64
65
|
|
66
|
+
# When the cron job is run, it is re-enqueued
|
67
|
+
# again with a random offset. This splay prevents
|
68
|
+
# the 'thundering herd' problem, where, say, may jobs
|
69
|
+
# are meant to happen at minute 0. Instead, jobs are offset.
|
70
|
+
#
|
71
|
+
# Use +nil+ to turn off this behavior and get more precise execution.
|
72
|
+
# This is mostly useful for jobs that must run very often.
|
73
|
+
#
|
74
|
+
# +duration+ must respond to +to_i+.
|
75
|
+
# @param duration [Integer,#to_i]
|
65
76
|
def splay(duration)
|
66
77
|
self.splay_duration = duration
|
67
78
|
end
|
data/lib/amigo/version.rb
CHANGED
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.6.
|
4
|
+
version: 1.6.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:
|
11
|
+
date: 2024-03-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sidekiq
|