acidic_job 0.8.8 → 0.9.0
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/.rubocop.yml +7 -0
- data/Gemfile.lock +1 -1
- data/lib/acidic_job/active_kiq.rb +7 -7
- data/lib/acidic_job/run.rb +1 -1
- data/lib/acidic_job/serializers/exception_serializer.rb +23 -18
- data/lib/acidic_job/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: 81f0d07fd3ed80da090cad46ec491cc26eb563daf53409929a35c82cb63205fd
|
|
4
|
+
data.tar.gz: 64de5c5c2ae35b4ce1fc50495b1dd647c722a80075f6371aa62dd7ba6996ebdc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0fd0a5171079377a1c9e9d810af1e95e955defbe5bb1bd929b627f1b5e66bdea3ae7276728de7369076ad09fd3bf24b23427706f971b69bdb68c912fffdbd14d
|
|
7
|
+
data.tar.gz: 12a1ba218ac52d17bdff46307055a04df317c95600f40eb4391e8d40a8f37169ac3360a8c6fa05657d5c3fb5fac3de92aea8f79b6b81f72604690a63ae4d14cd
|
data/.rubocop.yml
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -85,7 +85,7 @@ module AcidicJob
|
|
|
85
85
|
"jid" => @job_id,
|
|
86
86
|
"queue" => @queue_name
|
|
87
87
|
}
|
|
88
|
-
item["at"] = @scheduled_at if @scheduled_at
|
|
88
|
+
item["at"] = @scheduled_at if defined?(@scheduled_at) && @scheduled_at
|
|
89
89
|
|
|
90
90
|
::Sidekiq::Client.push(item)
|
|
91
91
|
end
|
|
@@ -126,16 +126,16 @@ module AcidicJob
|
|
|
126
126
|
# https://github.com/rails/rails/blob/93c9534c9871d4adad4bc33b5edc355672b59c61/activejob/lib/active_job/callbacks.rb
|
|
127
127
|
concerning :Callbacks do
|
|
128
128
|
class_methods do
|
|
129
|
-
def around_perform(
|
|
130
|
-
set_callback(:perform, :around,
|
|
129
|
+
def around_perform(...)
|
|
130
|
+
set_callback(:perform, :around, ...)
|
|
131
131
|
end
|
|
132
132
|
|
|
133
|
-
def before_perform(
|
|
134
|
-
set_callback(:perform, :before,
|
|
133
|
+
def before_perform(...)
|
|
134
|
+
set_callback(:perform, :before, ...)
|
|
135
135
|
end
|
|
136
136
|
|
|
137
|
-
def after_perform(
|
|
138
|
-
set_callback(:perform, :after,
|
|
137
|
+
def after_perform(...)
|
|
138
|
+
set_callback(:perform, :after, ...)
|
|
139
139
|
end
|
|
140
140
|
end
|
|
141
141
|
end
|
data/lib/acidic_job/run.rb
CHANGED
|
@@ -15,7 +15,7 @@ module AcidicJob
|
|
|
15
15
|
STAGED_JOB_ID_PREFIX = "STG"
|
|
16
16
|
STAGED_JOB_ID_DELIMITER = "__"
|
|
17
17
|
IDEMPOTENCY_KEY_LOCK_TIMEOUT_SECONDS = 2
|
|
18
|
-
RAILS_VERSION = Gem::Version.new(
|
|
18
|
+
RAILS_VERSION = Gem::Version.new(ActiveRecord.version)
|
|
19
19
|
TARGET_VERSION = Gem::Version.new("7.1")
|
|
20
20
|
REQUIRES_CODER_FOR_SERIALIZE = RAILS_VERSION >= TARGET_VERSION ||
|
|
21
21
|
RAILS_VERSION.segments[..1] == TARGET_VERSION.segments
|
|
@@ -6,31 +6,36 @@ module AcidicJob
|
|
|
6
6
|
module Serializers
|
|
7
7
|
class ExceptionSerializer < ::ActiveJob::Serializers::ObjectSerializer
|
|
8
8
|
def serialize(exception)
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
"message" => exception.message,
|
|
12
|
-
"cause" => exception.cause,
|
|
13
|
-
"backtrace" => {}
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
exception&.backtrace&.map do |trace|
|
|
9
|
+
compressed_backtrace = {}
|
|
10
|
+
exception.backtrace&.map do |trace|
|
|
17
11
|
path, _, location = trace.rpartition("/")
|
|
12
|
+
next if compressed_backtrace.key?(path)
|
|
18
13
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
hash["backtrace"][path] = location
|
|
14
|
+
compressed_backtrace[path] = location
|
|
22
15
|
end
|
|
16
|
+
exception.set_backtrace(compressed_backtrace.map do |path, location|
|
|
17
|
+
[path, location].join("/")
|
|
18
|
+
end)
|
|
19
|
+
exception.cause&.set_backtrace([])
|
|
23
20
|
|
|
24
|
-
super(
|
|
21
|
+
super({ "yaml" => exception.to_yaml })
|
|
25
22
|
end
|
|
26
23
|
|
|
27
24
|
def deserialize(hash)
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
[path, location
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
if hash.key?("class")
|
|
26
|
+
exception_class = hash["class"].constantize
|
|
27
|
+
exception = exception_class.new(hash["message"])
|
|
28
|
+
exception.set_backtrace(hash["backtrace"].map do |path, location|
|
|
29
|
+
[path, location].join("/")
|
|
30
|
+
end)
|
|
31
|
+
exception
|
|
32
|
+
elsif hash.key?("yaml")
|
|
33
|
+
if YAML.respond_to?(:unsafe_load)
|
|
34
|
+
YAML.unsafe_load(hash["yaml"])
|
|
35
|
+
else
|
|
36
|
+
YAML.load(hash["yaml"]) # rubocop:disable Security/YAMLLoad
|
|
37
|
+
end
|
|
38
|
+
end
|
|
34
39
|
end
|
|
35
40
|
|
|
36
41
|
def serialize?(argument)
|
data/lib/acidic_job/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: acidic_job
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.9.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- fractaledmind
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2023-
|
|
11
|
+
date: 2023-08-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activejob
|