good_job 3.3.0 → 3.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +38 -10
- data/{lib → app/models/concerns}/good_job/filterable.rb +0 -0
- data/{lib/models → app/models/concerns}/good_job/reportable.rb +0 -0
- data/{lib → app}/models/good_job/active_job_job.rb +0 -0
- data/{lib → app}/models/good_job/base_record.rb +0 -0
- data/{lib → app}/models/good_job/cron_entry.rb +1 -1
- data/{lib → app}/models/good_job/execution.rb +0 -0
- data/{lib → app/models}/good_job/execution_result.rb +0 -0
- data/{lib → app}/models/good_job/job.rb +1 -1
- data/{lib → app}/models/good_job/lockable.rb +0 -0
- data/{lib → app}/models/good_job/process.rb +4 -0
- data/app/views/good_job/processes/index.html.erb +3 -3
- data/app/views/good_job/shared/_navbar.erb +1 -1
- data/lib/good_job/adapter.rb +13 -11
- data/lib/good_job/cli.rb +4 -4
- data/lib/good_job/configuration.rb +6 -1
- data/lib/good_job/notifier.rb +1 -0
- data/lib/good_job/version.rb +1 -1
- data/lib/good_job.rb +29 -14
- metadata +16 -31
- data/lib/good_job/active_job_extensions.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cabb124450eb5e88a460635fb4aa70f3e5a53406ded6554bb32018fa2aa890bc
|
4
|
+
data.tar.gz: 0d83085806f8a1f30eff6136df4995f7982064b90a497ee56a4f8b9d922f4fbb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f17d4379517d9909ac771c9920b3472b1d5bbb18ce45bd78b160f76eba6b6a1169e6b89ec044cd8f3c5ad93a311be45174bd43b99468c5ff9a5c4bad088263f
|
7
|
+
data.tar.gz: 27f6aa3048d4035feb1e55b7cd4a3ba8410deb74ec9268fba23bac9a75c9db26bc3599d1f140bf68182b2f2307183013bc6601927a6eec19cab6051fcf03a927
|
data/CHANGELOG.md
CHANGED
@@ -1,9 +1,40 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [v3.3.1](https://github.com/bensheldon/good_job/tree/v3.3.1) (2022-07-26)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/bensheldon/good_job/compare/v3.3.0...v3.3.1)
|
6
|
+
|
7
|
+
**Implemented enhancements:**
|
8
|
+
|
9
|
+
- Show basename of proctitle [\#679](https://github.com/bensheldon/good_job/pull/679) ([bkeepers](https://github.com/bkeepers))
|
10
|
+
|
11
|
+
**Fixed bugs:**
|
12
|
+
|
13
|
+
- Only count \_active\_ processes in the Navbar [\#680](https://github.com/bensheldon/good_job/pull/680) ([bensheldon](https://github.com/bensheldon))
|
14
|
+
- Remove Zeitwerk and use explicit requires to be more like an engine [\#677](https://github.com/bensheldon/good_job/pull/677) ([bensheldon](https://github.com/bensheldon))
|
15
|
+
|
16
|
+
**Closed issues:**
|
17
|
+
|
18
|
+
- Dashboard UI Invalid count of running process [\#678](https://github.com/bensheldon/good_job/issues/678)
|
19
|
+
|
20
|
+
**Merged pull requests:**
|
21
|
+
|
22
|
+
- Lock to dotenv 2.7.x for Ruby 2.5 compatibility [\#682](https://github.com/bensheldon/good_job/pull/682) ([bensheldon](https://github.com/bensheldon))
|
23
|
+
- Create global GoodJob.configuration object [\#681](https://github.com/bensheldon/good_job/pull/681) ([bensheldon](https://github.com/bensheldon))
|
24
|
+
|
3
25
|
## [v3.3.0](https://github.com/bensheldon/good_job/tree/v3.3.0) (2022-07-24)
|
4
26
|
|
5
27
|
[Full Changelog](https://github.com/bensheldon/good_job/compare/v3.2.0...v3.3.0)
|
6
28
|
|
29
|
+
**Implemented enhancements:**
|
30
|
+
|
31
|
+
- Dashboard: Update cron and processes to match jobs listing [\#676](https://github.com/bensheldon/good_job/pull/676) ([bkeepers](https://github.com/bkeepers))
|
32
|
+
- Dashboard: improvements to jobs index and show pages [\#672](https://github.com/bensheldon/good_job/pull/672) ([bkeepers](https://github.com/bkeepers))
|
33
|
+
|
34
|
+
**Fixed bugs:**
|
35
|
+
|
36
|
+
- Replace "timestamp" column-type in migrations with "datetime" [\#671](https://github.com/bensheldon/good_job/pull/671) ([bensheldon](https://github.com/bensheldon))
|
37
|
+
|
7
38
|
**Closed issues:**
|
8
39
|
|
9
40
|
- Calculating database connections [\#669](https://github.com/bensheldon/good_job/issues/669)
|
@@ -14,9 +45,6 @@
|
|
14
45
|
|
15
46
|
**Merged pull requests:**
|
16
47
|
|
17
|
-
- Dashboard: Update cron and processes to match jobs listing [\#676](https://github.com/bensheldon/good_job/pull/676) ([bkeepers](https://github.com/bkeepers))
|
18
|
-
- Dashboard: improvements to jobs index and show pages [\#672](https://github.com/bensheldon/good_job/pull/672) ([bkeepers](https://github.com/bkeepers))
|
19
|
-
- Replace "timestamp" column-type in migrations with "datetime" [\#671](https://github.com/bensheldon/good_job/pull/671) ([bensheldon](https://github.com/bensheldon))
|
20
48
|
- Improve Readme description of v3 job preservation defaults [\#670](https://github.com/bensheldon/good_job/pull/670) ([bensheldon](https://github.com/bensheldon))
|
21
49
|
- update Gemfile.lock to latest dependencies [\#647](https://github.com/bensheldon/good_job/pull/647) ([jrochkind](https://github.com/jrochkind))
|
22
50
|
|
@@ -24,7 +52,7 @@
|
|
24
52
|
|
25
53
|
[Full Changelog](https://github.com/bensheldon/good_job/compare/v3.1.0...v3.2.0)
|
26
54
|
|
27
|
-
**
|
55
|
+
**Implemented enhancements:**
|
28
56
|
|
29
57
|
- Ordered queue handling by workers [\#665](https://github.com/bensheldon/good_job/pull/665) ([jrochkind](https://github.com/jrochkind))
|
30
58
|
|
@@ -34,7 +62,9 @@
|
|
34
62
|
|
35
63
|
**Implemented enhancements:**
|
36
64
|
|
65
|
+
- Show job/cron/process counts in the Navbar [\#663](https://github.com/bensheldon/good_job/pull/663) ([bensheldon](https://github.com/bensheldon))
|
37
66
|
- Improve Dashboard display of parameters \(CronEntry kwargs; Process configuration; Job and Execution database values\) [\#662](https://github.com/bensheldon/good_job/pull/662) ([bensheldon](https://github.com/bensheldon))
|
67
|
+
- Dequeing should be first-in first-out [\#651](https://github.com/bensheldon/good_job/pull/651) ([jrochkind](https://github.com/jrochkind))
|
38
68
|
|
39
69
|
**Fixed bugs:**
|
40
70
|
|
@@ -47,11 +77,6 @@
|
|
47
77
|
- Cron schedule page in dashboard not showing kwargs [\#608](https://github.com/bensheldon/good_job/issues/608)
|
48
78
|
- Paralelism x database connections [\#569](https://github.com/bensheldon/good_job/issues/569)
|
49
79
|
|
50
|
-
**Merged pull requests:**
|
51
|
-
|
52
|
-
- Show job/cron/process counts in the Navbar [\#663](https://github.com/bensheldon/good_job/pull/663) ([bensheldon](https://github.com/bensheldon))
|
53
|
-
- Dequeing should be first-in first-out [\#651](https://github.com/bensheldon/good_job/pull/651) ([jrochkind](https://github.com/jrochkind))
|
54
|
-
|
55
80
|
## [v3.0.2](https://github.com/bensheldon/good_job/tree/v3.0.2) (2022-07-10)
|
56
81
|
|
57
82
|
[Full Changelog](https://github.com/bensheldon/good_job/compare/v3.0.1...v3.0.2)
|
@@ -81,13 +106,16 @@
|
|
81
106
|
|
82
107
|
[Full Changelog](https://github.com/bensheldon/good_job/compare/v3.0.0...v3.0.1)
|
83
108
|
|
109
|
+
**Fixed bugs:**
|
110
|
+
|
111
|
+
- Fix `GoodJob.cleanup_preserved_jobs` to use `delete_all` instead of `destroy_all` [\#652](https://github.com/bensheldon/good_job/pull/652) ([bensheldon](https://github.com/bensheldon))
|
112
|
+
|
84
113
|
**Closed issues:**
|
85
114
|
|
86
115
|
- ERROR: relation "good\_jobs" does not exist at character 454 [\#308](https://github.com/bensheldon/good_job/issues/308)
|
87
116
|
|
88
117
|
**Merged pull requests:**
|
89
118
|
|
90
|
-
- Fix `GoodJob.cleanup_preserved_jobs` to use `delete_all` instead of `destroy_all` [\#652](https://github.com/bensheldon/good_job/pull/652) ([bensheldon](https://github.com/bensheldon))
|
91
119
|
- Create codeql-analysis.yml [\#648](https://github.com/bensheldon/good_job/pull/648) ([bensheldon](https://github.com/bensheldon))
|
92
120
|
|
93
121
|
## [v3.0.0](https://github.com/bensheldon/good_job/tree/v3.0.0) (2022-06-26)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -28,7 +28,7 @@ module GoodJob
|
|
28
28
|
self.primary_key = 'active_job_id'
|
29
29
|
self.advisory_lockable_column = 'active_job_id'
|
30
30
|
|
31
|
-
has_many :executions, -> { order(created_at: :asc) }, class_name: 'GoodJob::Execution', foreign_key: 'active_job_id', inverse_of: :job
|
31
|
+
has_many :executions, -> { order(created_at: :asc) }, class_name: 'GoodJob::Execution', foreign_key: 'active_job_id', inverse_of: :job # rubocop:disable Rails/HasManyOrHasOneDependent
|
32
32
|
|
33
33
|
# Only the most-recent unretried execution represents a "Job"
|
34
34
|
default_scope { where(retried_good_job_id: nil) }
|
File without changes
|
@@ -25,10 +25,10 @@
|
|
25
25
|
<div id="<%= dom_id(process) %>" class="<%= dom_class(process) %> list-group-item py-3" role="row">
|
26
26
|
<div class="row align-items-center">
|
27
27
|
<div class="col">
|
28
|
-
|
28
|
+
<%= tag.code title: process.state['proctitle'], class: "font-monospace" do %>
|
29
29
|
<span class="text-muted opacity-50">$</span>
|
30
|
-
<%= process.
|
31
|
-
|
30
|
+
<%= process.basename %>
|
31
|
+
<% end %>
|
32
32
|
<div>
|
33
33
|
<span class="text-muted small">PID</span>
|
34
34
|
<span class="badge rounded-pill bg-light text-dark"><%= process.state["pid"] %></span>
|
@@ -24,7 +24,7 @@
|
|
24
24
|
<li class="nav-item">
|
25
25
|
<%= link_to processes_path, class: ["nav-link", ("active" if controller_name == 'processes')] do %>
|
26
26
|
<%= t(".processes") %>
|
27
|
-
<% processes_count = GoodJob::Process.count %>
|
27
|
+
<% processes_count = GoodJob::Process.active.count %>
|
28
28
|
<span class="badge bg-secondary rounded-pill <%= "bg-danger" if processes_count == 0 %>"><%= processes_count %></span>
|
29
29
|
<% end %>
|
30
30
|
</li>
|
data/lib/good_job/adapter.rb
CHANGED
@@ -10,6 +10,8 @@ module GoodJob
|
|
10
10
|
# @return [Array<GoodJob::Adapter>, nil]
|
11
11
|
cattr_reader :instances, default: [], instance_reader: false
|
12
12
|
|
13
|
+
attr_reader :execution_mode
|
14
|
+
|
13
15
|
# @param execution_mode [Symbol, nil] specifies how and where jobs should be executed. You can also set this with the environment variable +GOOD_JOB_EXECUTION_MODE+.
|
14
16
|
#
|
15
17
|
# - +:inline+ executes jobs immediately in whatever process queued them (usually the web server process). This should only be used in test and development environments.
|
@@ -25,8 +27,8 @@ module GoodJob
|
|
25
27
|
# - +production+ and all other environments: +:external+
|
26
28
|
#
|
27
29
|
def initialize(execution_mode: nil)
|
28
|
-
@
|
29
|
-
@
|
30
|
+
@execution_mode = (execution_mode || GoodJob.configuration.execution_mode).to_sym
|
31
|
+
GoodJob::Configuration.validate_execution_mode(@execution_mode)
|
30
32
|
self.class.instances << self
|
31
33
|
|
32
34
|
start_async if GoodJob.async_ready?
|
@@ -82,7 +84,7 @@ module GoodJob
|
|
82
84
|
# @return [void]
|
83
85
|
def shutdown(timeout: :default)
|
84
86
|
timeout = if timeout == :default
|
85
|
-
|
87
|
+
GoodJob.configuration.shutdown_timeout
|
86
88
|
else
|
87
89
|
timeout
|
88
90
|
end
|
@@ -95,21 +97,21 @@ module GoodJob
|
|
95
97
|
# Whether in +:async+ execution mode.
|
96
98
|
# @return [Boolean]
|
97
99
|
def execute_async?
|
98
|
-
|
99
|
-
(
|
100
|
+
execution_mode == :async_all ||
|
101
|
+
(execution_mode.in?([:async, :async_server]) && in_server_process?)
|
100
102
|
end
|
101
103
|
|
102
104
|
# Whether in +:external+ execution mode.
|
103
105
|
# @return [Boolean]
|
104
106
|
def execute_externally?
|
105
|
-
|
106
|
-
(
|
107
|
+
execution_mode == :external ||
|
108
|
+
(execution_mode.in?([:async, :async_server]) && !in_server_process?)
|
107
109
|
end
|
108
110
|
|
109
111
|
# Whether in +:inline+ execution mode.
|
110
112
|
# @return [Boolean]
|
111
113
|
def execute_inline?
|
112
|
-
|
114
|
+
execution_mode == :inline
|
113
115
|
end
|
114
116
|
|
115
117
|
# Start async executors
|
@@ -118,12 +120,12 @@ module GoodJob
|
|
118
120
|
return unless execute_async?
|
119
121
|
|
120
122
|
@notifier = GoodJob::Notifier.new
|
121
|
-
@poller = GoodJob::Poller.new(poll_interval:
|
122
|
-
@scheduler = GoodJob::Scheduler.from_configuration(
|
123
|
+
@poller = GoodJob::Poller.new(poll_interval: GoodJob.configuration.poll_interval)
|
124
|
+
@scheduler = GoodJob::Scheduler.from_configuration(GoodJob.configuration, warm_cache_on_initialize: true)
|
123
125
|
@notifier.recipients << [@scheduler, :create_thread]
|
124
126
|
@poller.recipients << [@scheduler, :create_thread]
|
125
127
|
|
126
|
-
@cron_manager = GoodJob::CronManager.new(
|
128
|
+
@cron_manager = GoodJob::CronManager.new(GoodJob.configuration.cron_entries, start_on_initialize: true) if GoodJob.configuration.enable_cron?
|
127
129
|
|
128
130
|
@_async_started = true
|
129
131
|
end
|
data/lib/good_job/cli.rb
CHANGED
@@ -85,7 +85,8 @@ module GoodJob
|
|
85
85
|
|
86
86
|
def start
|
87
87
|
set_up_application!
|
88
|
-
|
88
|
+
GoodJob.configuration.options.merge!(options.symbolize_keys)
|
89
|
+
configuration = GoodJob.configuration
|
89
90
|
|
90
91
|
Daemon.new(pidfile: configuration.pidfile).daemonize if configuration.daemonize?
|
91
92
|
|
@@ -142,10 +143,9 @@ module GoodJob
|
|
142
143
|
|
143
144
|
def cleanup_preserved_jobs
|
144
145
|
set_up_application!
|
146
|
+
GoodJob.configuration.options.merge!(options.symbolize_keys)
|
145
147
|
|
146
|
-
|
147
|
-
|
148
|
-
GoodJob.cleanup_preserved_jobs(older_than: configuration.cleanup_preserved_jobs_before_seconds_ago)
|
148
|
+
GoodJob.cleanup_preserved_jobs(older_than: GoodJob.configuration.cleanup_preserved_jobs_before_seconds_ago)
|
149
149
|
end
|
150
150
|
|
151
151
|
no_commands do
|
@@ -27,7 +27,12 @@ module GoodJob
|
|
27
27
|
# Default to not running cron
|
28
28
|
DEFAULT_ENABLE_CRON = false
|
29
29
|
|
30
|
+
def self.validate_execution_mode(execution_mode)
|
31
|
+
raise ArgumentError, "GoodJob execution mode must be one of #{EXECUTION_MODES.join(', ')}. It was '#{execution_mode}' which is not valid." unless execution_mode.in?(EXECUTION_MODES)
|
32
|
+
end
|
33
|
+
|
30
34
|
# The options that were explicitly set when initializing +Configuration+.
|
35
|
+
# It is safe to modify this hash in place; be sure to symbolize keys.
|
31
36
|
# @return [Hash]
|
32
37
|
attr_reader :options
|
33
38
|
|
@@ -47,7 +52,7 @@ module GoodJob
|
|
47
52
|
end
|
48
53
|
|
49
54
|
def validate!
|
50
|
-
|
55
|
+
self.class.validate_execution_mode(execution_mode)
|
51
56
|
end
|
52
57
|
|
53
58
|
# Specifies how and where jobs should be executed. See {Adapter#initialize}
|
data/lib/good_job/notifier.rb
CHANGED
data/lib/good_job/version.rb
CHANGED
data/lib/good_job.rb
CHANGED
@@ -2,19 +2,29 @@
|
|
2
2
|
require "active_job"
|
3
3
|
require "active_job/queue_adapters"
|
4
4
|
|
5
|
-
require "
|
6
|
-
zeitwerk_options = Gem::Version.new(Zeitwerk::VERSION) >= Gem::Version.new("2.6.0") ? { warn_on_extra_files: false } : {}
|
7
|
-
Zeitwerk::Loader.for_gem(**zeitwerk_options).tap do |loader|
|
8
|
-
loader.inflector.inflect({
|
9
|
-
"cli" => "CLI",
|
10
|
-
})
|
11
|
-
loader.push_dir("#{__dir__}/models")
|
12
|
-
loader.ignore("#{__dir__}/generators")
|
13
|
-
loader.setup
|
14
|
-
end
|
15
|
-
|
5
|
+
require "good_job/version"
|
16
6
|
require "good_job/engine"
|
17
7
|
|
8
|
+
require "good_job/adapter"
|
9
|
+
require "active_job/queue_adapters/good_job_adapter"
|
10
|
+
require "good_job/active_job_extensions/concurrency"
|
11
|
+
|
12
|
+
require "good_job/assignable_connection"
|
13
|
+
require "good_job/cleanup_tracker"
|
14
|
+
require "good_job/cli"
|
15
|
+
require "good_job/configuration"
|
16
|
+
require "good_job/cron_manager"
|
17
|
+
require 'good_job/current_thread'
|
18
|
+
require "good_job/daemon"
|
19
|
+
require "good_job/dependencies"
|
20
|
+
require "good_job/job_performer"
|
21
|
+
require "good_job/log_subscriber"
|
22
|
+
require "good_job/multi_scheduler"
|
23
|
+
require "good_job/notifier"
|
24
|
+
require "good_job/poller"
|
25
|
+
require "good_job/probe_server"
|
26
|
+
require "good_job/scheduler"
|
27
|
+
|
18
28
|
# GoodJob is a multithreaded, Postgres-based, ActiveJob backend for Ruby on Rails.
|
19
29
|
#
|
20
30
|
# +GoodJob+ is the top-level namespace and exposes configuration attributes.
|
@@ -69,6 +79,12 @@ module GoodJob
|
|
69
79
|
# @return [Proc, nil]
|
70
80
|
mattr_accessor :on_thread_error, default: nil
|
71
81
|
|
82
|
+
# @!attribute [rw] configuration
|
83
|
+
# @!scope class
|
84
|
+
# Global configuration object for GoodJob.
|
85
|
+
# @return [GoodJob::Configuration, nil]
|
86
|
+
mattr_accessor :configuration, default: GoodJob::Configuration.new({})
|
87
|
+
|
72
88
|
# Called with exception when a GoodJob thread raises an exception
|
73
89
|
# @param exception [Exception] Exception that was raised
|
74
90
|
# @return [void]
|
@@ -135,10 +151,9 @@ module GoodJob
|
|
135
151
|
# @params older_than [nil,Numeric,ActiveSupport::Duration] Jobs older than this will be destroyed (default: +86400+).
|
136
152
|
# @return [Integer] Number of jobs that were destroyed.
|
137
153
|
def self.cleanup_preserved_jobs(older_than: nil)
|
138
|
-
|
139
|
-
older_than ||= configuration.cleanup_preserved_jobs_before_seconds_ago
|
154
|
+
older_than ||= GoodJob.configuration.cleanup_preserved_jobs_before_seconds_ago
|
140
155
|
timestamp = Time.current - older_than
|
141
|
-
include_discarded = configuration.cleanup_discarded_jobs?
|
156
|
+
include_discarded = GoodJob.configuration.cleanup_discarded_jobs?
|
142
157
|
|
143
158
|
ActiveSupport::Notifications.instrument("cleanup_preserved_jobs.good_job", { older_than: older_than, timestamp: timestamp }) do |payload|
|
144
159
|
old_jobs = GoodJob::Job.where('finished_at <= ?', timestamp)
|
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.3.
|
4
|
+
version: 3.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Sheldon
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-07-
|
11
|
+
date: 2022-07-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activejob
|
@@ -108,20 +108,6 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '1.3'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: zeitwerk
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ">="
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '2.0'
|
118
|
-
type: :runtime
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '2.0'
|
125
111
|
- !ruby/object:Gem::Dependency
|
126
112
|
name: benchmark-ips
|
127
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -168,16 +154,16 @@ dependencies:
|
|
168
154
|
name: dotenv
|
169
155
|
requirement: !ruby/object:Gem::Requirement
|
170
156
|
requirements:
|
171
|
-
- - "
|
157
|
+
- - "~>"
|
172
158
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
159
|
+
version: 2.7.6
|
174
160
|
type: :development
|
175
161
|
prerelease: false
|
176
162
|
version_requirements: !ruby/object:Gem::Requirement
|
177
163
|
requirements:
|
178
|
-
- - "
|
164
|
+
- - "~>"
|
179
165
|
- !ruby/object:Gem::Version
|
180
|
-
version:
|
166
|
+
version: 2.7.6
|
181
167
|
- !ruby/object:Gem::Dependency
|
182
168
|
name: foreman
|
183
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -383,6 +369,16 @@ files:
|
|
383
369
|
- app/filters/good_job/base_filter.rb
|
384
370
|
- app/filters/good_job/jobs_filter.rb
|
385
371
|
- app/helpers/good_job/application_helper.rb
|
372
|
+
- app/models/concerns/good_job/filterable.rb
|
373
|
+
- app/models/concerns/good_job/reportable.rb
|
374
|
+
- app/models/good_job/active_job_job.rb
|
375
|
+
- app/models/good_job/base_record.rb
|
376
|
+
- app/models/good_job/cron_entry.rb
|
377
|
+
- app/models/good_job/execution.rb
|
378
|
+
- app/models/good_job/execution_result.rb
|
379
|
+
- app/models/good_job/job.rb
|
380
|
+
- app/models/good_job/lockable.rb
|
381
|
+
- app/models/good_job/process.rb
|
386
382
|
- app/views/good_job/cron_entries/index.html.erb
|
387
383
|
- app/views/good_job/cron_entries/show.html.erb
|
388
384
|
- app/views/good_job/jobs/_executions.erb
|
@@ -419,7 +415,6 @@ files:
|
|
419
415
|
- lib/generators/good_job/templates/update/migrations/01_create_good_jobs.rb.erb
|
420
416
|
- lib/generators/good_job/update_generator.rb
|
421
417
|
- lib/good_job.rb
|
422
|
-
- lib/good_job/active_job_extensions.rb
|
423
418
|
- lib/good_job/active_job_extensions/concurrency.rb
|
424
419
|
- lib/good_job/adapter.rb
|
425
420
|
- lib/good_job/assignable_connection.rb
|
@@ -431,8 +426,6 @@ files:
|
|
431
426
|
- lib/good_job/daemon.rb
|
432
427
|
- lib/good_job/dependencies.rb
|
433
428
|
- lib/good_job/engine.rb
|
434
|
-
- lib/good_job/execution_result.rb
|
435
|
-
- lib/good_job/filterable.rb
|
436
429
|
- lib/good_job/job_performer.rb
|
437
430
|
- lib/good_job/log_subscriber.rb
|
438
431
|
- lib/good_job/multi_scheduler.rb
|
@@ -442,14 +435,6 @@ files:
|
|
442
435
|
- lib/good_job/probe_server.rb
|
443
436
|
- lib/good_job/scheduler.rb
|
444
437
|
- lib/good_job/version.rb
|
445
|
-
- lib/models/good_job/active_job_job.rb
|
446
|
-
- lib/models/good_job/base_record.rb
|
447
|
-
- lib/models/good_job/cron_entry.rb
|
448
|
-
- lib/models/good_job/execution.rb
|
449
|
-
- lib/models/good_job/job.rb
|
450
|
-
- lib/models/good_job/lockable.rb
|
451
|
-
- lib/models/good_job/process.rb
|
452
|
-
- lib/models/good_job/reportable.rb
|
453
438
|
homepage: https://github.com/bensheldon/good_job
|
454
439
|
licenses:
|
455
440
|
- MIT
|