good_job 3.12.7 → 3.13.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 +39 -4
- data/app/controllers/good_job/frontends_controller.rb +1 -1
- data/app/filters/good_job/jobs_filter.rb +13 -11
- data/app/models/good_job/job.rb +10 -0
- data/app/views/good_job/jobs/_table.erb +1 -1
- data/lib/good_job/capsule.rb +3 -1
- data/lib/good_job/cli.rb +4 -1
- data/lib/good_job/scheduler.rb +4 -2
- data/lib/good_job/version.rb +1 -1
- data/lib/good_job.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: c83cf253d12daeb00363fe9c1b3a06b463c6944aa108aa4f884bf43b0d1f5c88
|
|
4
|
+
data.tar.gz: 71738f01485fb73b1dfa71396807f4570922d53aa186bf7aa1f9c27b21e4e559
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 25bbd078a94d5079b47d57c267ad72f7e6baa024230add7fd9c693c621eb8be7117aa517f715baba5b16cb5f0378eb0e407a41ea1569e923a16716ef0f4d391b
|
|
7
|
+
data.tar.gz: cf58cbaea01a1dd6714b53c6d618661908ccf46ef3deae58b3e2d6063f512e528d0d4f04850e7a3c4a1ccc59ece959a0919d19898488116898f78b9c78c7a5f6
|
data/CHANGELOG.md
CHANGED
|
@@ -1,17 +1,52 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## [v3.
|
|
3
|
+
## [v3.13.0](https://github.com/bensheldon/good_job/tree/v3.13.0) (2023-03-08)
|
|
4
4
|
|
|
5
|
-
[Full Changelog](https://github.com/bensheldon/good_job/compare/v3.12.
|
|
5
|
+
[Full Changelog](https://github.com/bensheldon/good_job/compare/v3.12.8...v3.13.0)
|
|
6
|
+
|
|
7
|
+
**Implemented enhancements:**
|
|
8
|
+
|
|
9
|
+
- If logging to STDOUT in CLI set $stdout.sync = true [\#882](https://github.com/bensheldon/good_job/pull/882) ([blafri](https://github.com/blafri))
|
|
6
10
|
|
|
7
11
|
**Fixed bugs:**
|
|
8
12
|
|
|
9
|
-
-
|
|
13
|
+
- Don't load all Executions on Jobs Dashboard [\#878](https://github.com/bensheldon/good_job/pull/878) ([bensheldon](https://github.com/bensheldon))
|
|
14
|
+
|
|
15
|
+
**Closed issues:**
|
|
16
|
+
|
|
17
|
+
- No route matches \[POST\] "/scheduler-dashboard/jobs/\<id\>/retry" [\#880](https://github.com/bensheldon/good_job/issues/880)
|
|
18
|
+
- What is `concurrency_key` used for? [\#877](https://github.com/bensheldon/good_job/issues/877)
|
|
19
|
+
- ArgumentError in GoodJob::Jobs\#index [\#875](https://github.com/bensheldon/good_job/issues/875)
|
|
20
|
+
- Nonworking dashboard for job with many retries [\#809](https://github.com/bensheldon/good_job/issues/809)
|
|
21
|
+
|
|
22
|
+
**Merged pull requests:**
|
|
23
|
+
|
|
24
|
+
- Add aggressive test for async Batches [\#833](https://github.com/bensheldon/good_job/pull/833) ([bensheldon](https://github.com/bensheldon))
|
|
25
|
+
|
|
26
|
+
## [v3.12.8](https://github.com/bensheldon/good_job/tree/v3.12.8) (2023-03-06)
|
|
27
|
+
|
|
28
|
+
[Full Changelog](https://github.com/bensheldon/good_job/compare/v3.12.7...v3.12.8)
|
|
29
|
+
|
|
30
|
+
**Fixed bugs:**
|
|
31
|
+
|
|
32
|
+
- Add `raise: false` to FrontendsController after action skip [\#881](https://github.com/bensheldon/good_job/pull/881) ([simi](https://github.com/simi))
|
|
10
33
|
|
|
11
34
|
**Closed issues:**
|
|
12
35
|
|
|
13
36
|
- GoodJob's JavaScript takes precedence over application's JavaScript in GoodJob 3.12.6, Rails 7 [\#873](https://github.com/bensheldon/good_job/issues/873)
|
|
14
37
|
|
|
38
|
+
**Merged pull requests:**
|
|
39
|
+
|
|
40
|
+
- Rewrite flaky tests: don't allow nil timeout for restart [\#872](https://github.com/bensheldon/good_job/pull/872) ([bensheldon](https://github.com/bensheldon))
|
|
41
|
+
|
|
42
|
+
## [v3.12.7](https://github.com/bensheldon/good_job/tree/v3.12.7) (2023-03-01)
|
|
43
|
+
|
|
44
|
+
[Full Changelog](https://github.com/bensheldon/good_job/compare/v3.12.6...v3.12.7)
|
|
45
|
+
|
|
46
|
+
**Fixed bugs:**
|
|
47
|
+
|
|
48
|
+
- Rename "assets" to "frontends" to avoid Asset Pipeline collisions [\#874](https://github.com/bensheldon/good_job/pull/874) ([bensheldon](https://github.com/bensheldon))
|
|
49
|
+
|
|
15
50
|
## [v3.12.6](https://github.com/bensheldon/good_job/tree/v3.12.6) (2023-03-01)
|
|
16
51
|
|
|
17
52
|
[Full Changelog](https://github.com/bensheldon/good_job/compare/v3.12.5...v3.12.6)
|
|
@@ -158,7 +193,7 @@
|
|
|
158
193
|
|
|
159
194
|
**Closed issues:**
|
|
160
195
|
|
|
161
|
-
- Support for Ruby 3.2 [\#785](https://github.com/bensheldon/good_job/issues/785)
|
|
196
|
+
- Support for Rails 6.1 / Ruby 3.2 [\#785](https://github.com/bensheldon/good_job/issues/785)
|
|
162
197
|
- Custom table names [\#748](https://github.com/bensheldon/good_job/issues/748)
|
|
163
198
|
- Health check issue with cron scheduler job [\#741](https://github.com/bensheldon/good_job/issues/741)
|
|
164
199
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
module GoodJob
|
|
3
3
|
class FrontendsController < ActionController::Base # rubocop:disable Rails/ApplicationController
|
|
4
|
-
skip_after_action :verify_same_origin_request
|
|
4
|
+
skip_after_action :verify_same_origin_request, raise: false
|
|
5
5
|
|
|
6
6
|
STATIC_ASSETS = {
|
|
7
7
|
css: {
|
|
@@ -2,15 +2,17 @@
|
|
|
2
2
|
module GoodJob
|
|
3
3
|
class JobsFilter < BaseFilter
|
|
4
4
|
def states
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
@_states ||= begin
|
|
6
|
+
query = filtered_query(params.except(:state))
|
|
7
|
+
{
|
|
8
|
+
'scheduled' => query.scheduled.count,
|
|
9
|
+
'retried' => query.retried.count,
|
|
10
|
+
'queued' => query.queued.count,
|
|
11
|
+
'running' => query.running.count,
|
|
12
|
+
'succeeded' => query.succeeded.count,
|
|
13
|
+
'discarded' => query.discarded.count,
|
|
14
|
+
}
|
|
15
|
+
end
|
|
14
16
|
end
|
|
15
17
|
|
|
16
18
|
def filtered_query(filter_params = params)
|
|
@@ -42,13 +44,13 @@ module GoodJob
|
|
|
42
44
|
end
|
|
43
45
|
|
|
44
46
|
def filtered_count
|
|
45
|
-
filtered_query.unscope(:select).count
|
|
47
|
+
@_filtered_count ||= filtered_query.unscope(:select).count
|
|
46
48
|
end
|
|
47
49
|
|
|
48
50
|
private
|
|
49
51
|
|
|
50
52
|
def query_for_records
|
|
51
|
-
filtered_query.
|
|
53
|
+
filtered_query.includes_advisory_locks
|
|
52
54
|
end
|
|
53
55
|
|
|
54
56
|
def default_base_query
|
data/app/models/good_job/job.rb
CHANGED
|
@@ -136,6 +136,16 @@ module GoodJob
|
|
|
136
136
|
error || executions[-2]&.error
|
|
137
137
|
end
|
|
138
138
|
|
|
139
|
+
# Errors for the job to be displayed in the Dashboard.
|
|
140
|
+
# @return [String]
|
|
141
|
+
def display_error
|
|
142
|
+
return error if error.present?
|
|
143
|
+
|
|
144
|
+
serialized_params.fetch('exception_executions', {}).map do |exception, count|
|
|
145
|
+
"#{exception}: #{count}"
|
|
146
|
+
end.join(', ')
|
|
147
|
+
end
|
|
148
|
+
|
|
139
149
|
# Return formatted serialized_params for display in the dashboard
|
|
140
150
|
# @return [Hash]
|
|
141
151
|
def display_serialized_params
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
bs_toggle: "popover",
|
|
83
83
|
bs_trigger: "hover focus click",
|
|
84
84
|
bs_placement: "bottom",
|
|
85
|
-
bs_content: job.
|
|
85
|
+
bs_content: job.display_error,
|
|
86
86
|
} %>
|
|
87
87
|
<% else %>
|
|
88
88
|
<span class="badge bg-secondary bg-opacity-50 rounded-pill"><%= job.executions_count %></span>
|
data/lib/good_job/capsule.rb
CHANGED
|
@@ -55,9 +55,11 @@ module GoodJob
|
|
|
55
55
|
end
|
|
56
56
|
|
|
57
57
|
# Shutdown and then start the capsule again.
|
|
58
|
-
# @param timeout [
|
|
58
|
+
# @param timeout [Numeric, Symbol] Seconds to wait for active threads.
|
|
59
59
|
# @return [void]
|
|
60
60
|
def restart(timeout: :default)
|
|
61
|
+
raise ArgumentError, "Capsule#restart cannot be called with a timeout of nil" if timeout.nil?
|
|
62
|
+
|
|
61
63
|
shutdown(timeout: timeout)
|
|
62
64
|
start
|
|
63
65
|
end
|
data/lib/good_job/cli.rb
CHANGED
|
@@ -148,7 +148,10 @@ module GoodJob
|
|
|
148
148
|
# Rails or from the application can be set up here.
|
|
149
149
|
def set_up_application!
|
|
150
150
|
require RAILS_ENVIRONMENT_RB
|
|
151
|
-
return
|
|
151
|
+
return unless GoodJob::CLI.log_to_stdout?
|
|
152
|
+
|
|
153
|
+
$stdout.sync = true
|
|
154
|
+
return if ActiveSupport::Logger.logger_outputs_to?(GoodJob.logger, $stdout)
|
|
152
155
|
|
|
153
156
|
GoodJob::LogSubscriber.loggers << ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new($stdout))
|
|
154
157
|
GoodJob::LogSubscriber.reset_logger
|
data/lib/good_job/scheduler.rb
CHANGED
|
@@ -132,11 +132,13 @@ module GoodJob # :nodoc:
|
|
|
132
132
|
|
|
133
133
|
# Restart the Scheduler.
|
|
134
134
|
# When shutdown, start; or shutdown and start.
|
|
135
|
-
# @param timeout [
|
|
135
|
+
# @param timeout [Numeric] Seconds to wait for actively executing jobs to finish; shares same values as {#shutdown}.
|
|
136
136
|
# @return [void]
|
|
137
137
|
def restart(timeout: -1)
|
|
138
|
+
raise ArgumentError, "Scheduler#restart cannot be called with a timeout of nil" if timeout.nil?
|
|
139
|
+
|
|
138
140
|
instrument("scheduler_restart_pools") do
|
|
139
|
-
shutdown(timeout: timeout)
|
|
141
|
+
shutdown(timeout: timeout)
|
|
140
142
|
create_executor
|
|
141
143
|
warm_cache
|
|
142
144
|
end
|
data/lib/good_job/version.rb
CHANGED
data/lib/good_job.rb
CHANGED
|
@@ -131,7 +131,7 @@ module GoodJob
|
|
|
131
131
|
# When forking processes you should shut down these background threads before forking, and restart them after forking.
|
|
132
132
|
# For example, you should use +shutdown+ and +restart+ when using async execution mode with Puma.
|
|
133
133
|
# See the {file:README.md#executing-jobs-async--in-process} for more explanation and examples.
|
|
134
|
-
# @param timeout [Numeric
|
|
134
|
+
# @param timeout [Numeric] Seconds to wait for active threads to finish.
|
|
135
135
|
# @return [void]
|
|
136
136
|
def self.restart(timeout: -1)
|
|
137
137
|
_shutdown_all(Capsule.instances, :restart, timeout: timeout)
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: good_job
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.13.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ben Sheldon
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2023-03-
|
|
11
|
+
date: 2023-03-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activejob
|