active_job_log 2.0.0 → 2.1.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/CHANGELOG.md +6 -0
- data/Gemfile.lock +1 -1
- data/README.md +14 -0
- data/lib/active_job_log/log_ext.rb +38 -19
- data/lib/active_job_log/version.rb +1 -1
- data/spec/lib/active_job_log/log_ext_spec.rb +50 -17
- 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: f2a246cc523e487ca1aa839f1ecacffad9cd6459b8c66d7879e44808453d7e9b
|
4
|
+
data.tar.gz: d5042bfd7f44b07e521e978aa98fdda7d9ed5b3a27949cd85cf91a038dccb84b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: add4582bcf93c72bee457d5d7c612ec9a801e187e34c6df9df657d7a0682b1a7fc17f28a4f9d3cdf1bdfa9a040c580f735c195fd03691c49fdf97a26338ab9b4
|
7
|
+
data.tar.gz: c6aef40bb57db3c35164531e1863f49ab3c93a6788b21dc7ed0aef3b6728de963e79180773cad69667440255fd3260deac89f935f13f4a7160f4d1d87b94d2ad
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,12 @@
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
4
4
|
|
5
|
+
### v2.1.0
|
6
|
+
|
7
|
+
#### Added
|
8
|
+
|
9
|
+
* Avoid logging using `disable_job_logs` class method.
|
10
|
+
|
5
11
|
### v2.0.0
|
6
12
|
|
7
13
|
#### Changed
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -99,6 +99,20 @@ queued pending finished failed
|
|
99
99
|
|
100
100
|
- `executions`: number of times this job has been executed (which increments on every retry, like after an exception.
|
101
101
|
|
102
|
+
### Disable logging
|
103
|
+
|
104
|
+
If you want to avoid logging a specific job you have to add `disable_job_logs` config option on that job. For example:
|
105
|
+
|
106
|
+
```ruby
|
107
|
+
class MyJob < ActiveJob::Base
|
108
|
+
disable_job_logs
|
109
|
+
|
110
|
+
def perform(param1, param2)
|
111
|
+
# ...
|
112
|
+
end
|
113
|
+
end
|
114
|
+
```
|
115
|
+
|
102
116
|
### Important
|
103
117
|
|
104
118
|
If your job calls the `rescue_from` method, you will need to call the `fail_job` method explicitly to log the job completion. For example:
|
@@ -3,6 +3,8 @@ module ActiveJobLog
|
|
3
3
|
extend ActiveSupport::Concern
|
4
4
|
|
5
5
|
included do
|
6
|
+
class_attribute :disabled_log
|
7
|
+
|
6
8
|
before_enqueue { |job| enqueue_job(job) }
|
7
9
|
before_perform { |job| execute_job(job) }
|
8
10
|
after_perform { |job| finish_job(job) }
|
@@ -11,31 +13,48 @@ module ActiveJobLog
|
|
11
13
|
fail_job(exception)
|
12
14
|
raise exception
|
13
15
|
end
|
16
|
+
end
|
14
17
|
|
15
|
-
|
16
|
-
|
18
|
+
class_methods do
|
19
|
+
def disable_job_logs
|
20
|
+
self.disabled_log = true
|
17
21
|
end
|
22
|
+
end
|
18
23
|
|
19
|
-
|
20
|
-
|
21
|
-
|
24
|
+
def enqueue_job(job)
|
25
|
+
update_job!(job.job_id, :queued, init_params(job))
|
26
|
+
end
|
22
27
|
|
23
|
-
|
24
|
-
|
25
|
-
|
28
|
+
def execute_job(job)
|
29
|
+
update_job!(job.job_id, :pending, init_params(job))
|
30
|
+
end
|
26
31
|
|
27
|
-
|
28
|
-
|
29
|
-
|
32
|
+
def finish_job(job)
|
33
|
+
update_job!(job.job_id, :finished)
|
34
|
+
end
|
30
35
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
36
|
+
def fail_job(exception)
|
37
|
+
update_job!(
|
38
|
+
job_id,
|
39
|
+
:failed,
|
40
|
+
error: exception.message,
|
41
|
+
stack_trace: exception.backtrace
|
42
|
+
)
|
43
|
+
end
|
44
|
+
|
45
|
+
def update_job!(job_id, status, params = {})
|
46
|
+
return if self.class.disabled_log
|
47
|
+
|
48
|
+
Job.update_job!(job_id, status, params)
|
49
|
+
end
|
50
|
+
|
51
|
+
def init_params(job)
|
52
|
+
{
|
53
|
+
job_class: self.class.name,
|
54
|
+
params: job.arguments,
|
55
|
+
executions: job.try(:executions),
|
56
|
+
queue_name: job.queue_name
|
57
|
+
}
|
39
58
|
end
|
40
59
|
end
|
41
60
|
end
|
@@ -1,15 +1,9 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
3
|
RSpec.describe ActiveJobLog::LogExt do
|
4
|
-
def
|
5
|
-
|
6
|
-
rescue
|
7
|
-
nil
|
8
|
-
end
|
9
|
-
|
10
|
-
def perform_now
|
11
|
-
TestJob.perform_now(*job_params)
|
12
|
-
rescue
|
4
|
+
def perform_now(job_class)
|
5
|
+
job_class.perform_now(*job_params)
|
6
|
+
rescue StandardError
|
13
7
|
nil
|
14
8
|
end
|
15
9
|
|
@@ -17,19 +11,21 @@ RSpec.describe ActiveJobLog::LogExt do
|
|
17
11
|
%w{p1 p2}
|
18
12
|
end
|
19
13
|
|
20
|
-
before { remove_job_class }
|
21
|
-
|
22
14
|
it { expect(ActiveJobLog::Job.count).to eq(0) }
|
23
15
|
|
24
16
|
context "with successful job" do
|
25
|
-
|
26
|
-
|
17
|
+
let(:job_class) do
|
18
|
+
klass = Class.new(ApplicationJob) do
|
27
19
|
def perform(param1, param2)
|
28
20
|
"success with #{param1} and #{param2}"
|
29
21
|
end
|
30
22
|
end
|
31
23
|
|
32
|
-
|
24
|
+
stub_const('TestJob', klass)
|
25
|
+
end
|
26
|
+
|
27
|
+
before do
|
28
|
+
perform_now(job_class)
|
33
29
|
@job = ActiveJobLog::Job.last
|
34
30
|
end
|
35
31
|
|
@@ -51,14 +47,18 @@ RSpec.describe ActiveJobLog::LogExt do
|
|
51
47
|
end
|
52
48
|
|
53
49
|
context "with failed job" do
|
54
|
-
|
55
|
-
|
50
|
+
let(:job_class) do
|
51
|
+
klass = Class.new(ApplicationJob) do
|
56
52
|
def perform(_param1, _param2)
|
57
53
|
raise "error"
|
58
54
|
end
|
59
55
|
end
|
60
56
|
|
61
|
-
|
57
|
+
stub_const('TestJob', klass)
|
58
|
+
end
|
59
|
+
|
60
|
+
before do
|
61
|
+
perform_now(job_class)
|
62
62
|
@job = ActiveJobLog::Job.last
|
63
63
|
end
|
64
64
|
|
@@ -78,4 +78,37 @@ RSpec.describe ActiveJobLog::LogExt do
|
|
78
78
|
it { expect(@job.total_duration).not_to be_nil }
|
79
79
|
it { expect(@job.executions).to eq(1) }
|
80
80
|
end
|
81
|
+
|
82
|
+
context "with disabled jobs" do
|
83
|
+
let(:disabled_job_class) do
|
84
|
+
klass = Class.new(ApplicationJob) do
|
85
|
+
disable_job_logs
|
86
|
+
|
87
|
+
def perform(_param1, _param2)
|
88
|
+
# ...
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
stub_const('DisabledTestJob', klass)
|
93
|
+
end
|
94
|
+
|
95
|
+
let(:enabled_job_class) do
|
96
|
+
klass = Class.new(ApplicationJob) do
|
97
|
+
def perform(_param1, _param2)
|
98
|
+
# ...
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
stub_const('EnabledTestJob', klass)
|
103
|
+
end
|
104
|
+
|
105
|
+
before do
|
106
|
+
perform_now(disabled_job_class)
|
107
|
+
perform_now(enabled_job_class)
|
108
|
+
@job = ActiveJobLog::Job.last
|
109
|
+
end
|
110
|
+
|
111
|
+
it { expect(ActiveJobLog::Job.count).to eq(1) }
|
112
|
+
it { expect(@job.job_class).to eq('EnabledTestJob') }
|
113
|
+
end
|
81
114
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_job_log
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Platanus
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2021-
|
12
|
+
date: 2021-07-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|