good_job 3.3.0 → 3.3.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2225caa419c57cd76c9acba358fa94e2fd2d29c914d25459093a5a65b785087d
4
- data.tar.gz: 2c6af031bb80859108ed847a7d891a2066b06004edb518fa8921b01b3c9b662a
3
+ metadata.gz: 1f8fa4783c84a1fa080726fad9771b6414c7ece765a54bd8641e9629c658c426
4
+ data.tar.gz: 9de3f045df0fafdb537c454f5c7b713646e73e0e446e7b1ebe4f13ed8d3aba1c
5
5
  SHA512:
6
- metadata.gz: 00bfcfcf22a4f3e5138bc2d85a172bbf4c74515c38759af561567c42f5464825fd47aa3f5c369f91196ede2b73211c9e1b3422f5d555bcff439e7fd32fc9db1a
7
- data.tar.gz: cc28292dd555ddd951ab465534302f0775784074e456bb181eb2f5efc07f4281bcd49783fa38e4a205591fb05daa19f88ff013995fe06fe3761e675b1e84e0ba
6
+ metadata.gz: 434f580b2874f78161406758b29b65f46bd30b61f1b876f3aa6450da6f3f3fd35843b98a226cd57ea4d531724f5cb5814e8c1fe34a642f4a68e877f85c2c9601
7
+ data.tar.gz: a06a69d3e03e3a4a4aacd34b8b0132488c91efe595c4559089392f0db3c6ea129483c2b3ca902aa95743f7f0b981a1821d63c557eb5d06ac7a07de7e38be6885
data/CHANGELOG.md CHANGED
@@ -1,9 +1,60 @@
1
1
  # Changelog
2
2
 
3
+ ## [v3.3.3](https://github.com/bensheldon/good_job/tree/v3.3.3) (2022-08-02)
4
+
5
+ [Full Changelog](https://github.com/bensheldon/good_job/compare/v3.3.2...v3.3.3)
6
+
7
+ **Closed issues:**
8
+
9
+ - Async not working Rails 7 with puma CLI [\#685](https://github.com/bensheldon/good_job/issues/685)
10
+
11
+ **Merged pull requests:**
12
+
13
+ - Detect usage of `puma` CLI for async mode [\#686](https://github.com/bensheldon/good_job/pull/686) ([bensheldon](https://github.com/bensheldon))
14
+
15
+ ## [v3.3.2](https://github.com/bensheldon/good_job/tree/v3.3.2) (2022-07-27)
16
+
17
+ [Full Changelog](https://github.com/bensheldon/good_job/compare/v3.3.1...v3.3.2)
18
+
19
+ **Fixed bugs:**
20
+
21
+ - Defer setting Adapter's execution mode until Rails initializes [\#683](https://github.com/bensheldon/good_job/pull/683) ([bensheldon](https://github.com/bensheldon))
22
+
23
+ ## [v3.3.1](https://github.com/bensheldon/good_job/tree/v3.3.1) (2022-07-26)
24
+
25
+ [Full Changelog](https://github.com/bensheldon/good_job/compare/v3.3.0...v3.3.1)
26
+
27
+ **Implemented enhancements:**
28
+
29
+ - Show basename of proctitle [\#679](https://github.com/bensheldon/good_job/pull/679) ([bkeepers](https://github.com/bkeepers))
30
+
31
+ **Fixed bugs:**
32
+
33
+ - Only count \_active\_ processes in the Navbar [\#680](https://github.com/bensheldon/good_job/pull/680) ([bensheldon](https://github.com/bensheldon))
34
+ - 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))
35
+
36
+ **Closed issues:**
37
+
38
+ - Dashboard UI Invalid count of running process [\#678](https://github.com/bensheldon/good_job/issues/678)
39
+
40
+ **Merged pull requests:**
41
+
42
+ - 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))
43
+ - Create global GoodJob.configuration object [\#681](https://github.com/bensheldon/good_job/pull/681) ([bensheldon](https://github.com/bensheldon))
44
+
3
45
  ## [v3.3.0](https://github.com/bensheldon/good_job/tree/v3.3.0) (2022-07-24)
4
46
 
5
47
  [Full Changelog](https://github.com/bensheldon/good_job/compare/v3.2.0...v3.3.0)
6
48
 
49
+ **Implemented enhancements:**
50
+
51
+ - Dashboard: Update cron and processes to match jobs listing [\#676](https://github.com/bensheldon/good_job/pull/676) ([bkeepers](https://github.com/bkeepers))
52
+ - Dashboard: improvements to jobs index and show pages [\#672](https://github.com/bensheldon/good_job/pull/672) ([bkeepers](https://github.com/bkeepers))
53
+
54
+ **Fixed bugs:**
55
+
56
+ - Replace "timestamp" column-type in migrations with "datetime" [\#671](https://github.com/bensheldon/good_job/pull/671) ([bensheldon](https://github.com/bensheldon))
57
+
7
58
  **Closed issues:**
8
59
 
9
60
  - Calculating database connections [\#669](https://github.com/bensheldon/good_job/issues/669)
@@ -14,9 +65,6 @@
14
65
 
15
66
  **Merged pull requests:**
16
67
 
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
68
  - Improve Readme description of v3 job preservation defaults [\#670](https://github.com/bensheldon/good_job/pull/670) ([bensheldon](https://github.com/bensheldon))
21
69
  - update Gemfile.lock to latest dependencies [\#647](https://github.com/bensheldon/good_job/pull/647) ([jrochkind](https://github.com/jrochkind))
22
70
 
@@ -24,7 +72,7 @@
24
72
 
25
73
  [Full Changelog](https://github.com/bensheldon/good_job/compare/v3.1.0...v3.2.0)
26
74
 
27
- **Merged pull requests:**
75
+ **Implemented enhancements:**
28
76
 
29
77
  - Ordered queue handling by workers [\#665](https://github.com/bensheldon/good_job/pull/665) ([jrochkind](https://github.com/jrochkind))
30
78
 
@@ -34,7 +82,9 @@
34
82
 
35
83
  **Implemented enhancements:**
36
84
 
85
+ - Show job/cron/process counts in the Navbar [\#663](https://github.com/bensheldon/good_job/pull/663) ([bensheldon](https://github.com/bensheldon))
37
86
  - 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))
87
+ - Dequeing should be first-in first-out [\#651](https://github.com/bensheldon/good_job/pull/651) ([jrochkind](https://github.com/jrochkind))
38
88
 
39
89
  **Fixed bugs:**
40
90
 
@@ -47,11 +97,6 @@
47
97
  - Cron schedule page in dashboard not showing kwargs [\#608](https://github.com/bensheldon/good_job/issues/608)
48
98
  - Paralelism x database connections [\#569](https://github.com/bensheldon/good_job/issues/569)
49
99
 
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
100
  ## [v3.0.2](https://github.com/bensheldon/good_job/tree/v3.0.2) (2022-07-10)
56
101
 
57
102
  [Full Changelog](https://github.com/bensheldon/good_job/compare/v3.0.1...v3.0.2)
@@ -81,13 +126,16 @@
81
126
 
82
127
  [Full Changelog](https://github.com/bensheldon/good_job/compare/v3.0.0...v3.0.1)
83
128
 
129
+ **Fixed bugs:**
130
+
131
+ - 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))
132
+
84
133
  **Closed issues:**
85
134
 
86
135
  - ERROR: relation "good\_jobs" does not exist at character 454 [\#308](https://github.com/bensheldon/good_job/issues/308)
87
136
 
88
137
  **Merged pull requests:**
89
138
 
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
139
  - Create codeql-analysis.yml [\#648](https://github.com/bensheldon/good_job/pull/648) ([bensheldon](https://github.com/bensheldon))
92
140
 
93
141
  ## [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
@@ -13,7 +13,7 @@ module GoodJob # :nodoc:
13
13
  attr_reader :params
14
14
 
15
15
  def self.all(configuration: nil)
16
- configuration ||= GoodJob::Configuration.new({})
16
+ configuration ||= GoodJob.configuration
17
17
  configuration.cron_entries
18
18
  end
19
19
 
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
@@ -71,5 +71,9 @@ module GoodJob # :nodoc:
71
71
  destroy!
72
72
  advisory_unlock
73
73
  end
74
+
75
+ def basename
76
+ File.basename(state["proctitle"])
77
+ end
74
78
  end
75
79
  end
@@ -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
- <code class="font-monospace">
28
+ <%= tag.code title: process.state['proctitle'], class: "font-monospace" do %>
29
29
  <span class="text-muted opacity-50">$</span>
30
- <%= process.state["proctitle"] %>
31
- </code>
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>
@@ -25,10 +25,10 @@ module GoodJob
25
25
  # - +production+ and all other environments: +:external+
26
26
  #
27
27
  def initialize(execution_mode: nil)
28
- @configuration = GoodJob::Configuration.new({ execution_mode: execution_mode })
29
- @configuration.validate!
30
- self.class.instances << self
28
+ @_execution_mode_override = execution_mode
29
+ GoodJob::Configuration.validate_execution_mode(@_execution_mode_override) if @_execution_mode_override
31
30
 
31
+ self.class.instances << self
32
32
  start_async if GoodJob.async_ready?
33
33
  end
34
34
 
@@ -82,7 +82,7 @@ module GoodJob
82
82
  # @return [void]
83
83
  def shutdown(timeout: :default)
84
84
  timeout = if timeout == :default
85
- @configuration.shutdown_timeout
85
+ GoodJob.configuration.shutdown_timeout
86
86
  else
87
87
  timeout
88
88
  end
@@ -92,24 +92,31 @@ module GoodJob
92
92
  @_async_started = false
93
93
  end
94
94
 
95
+ # This adapter's execution mode
96
+ # @return [Symbol, nil]
97
+ def execution_mode
98
+ @_execution_mode_override || GoodJob.configuration.execution_mode
99
+ end
100
+
95
101
  # Whether in +:async+ execution mode.
96
102
  # @return [Boolean]
97
103
  def execute_async?
98
- @configuration.execution_mode == :async_all ||
99
- (@configuration.execution_mode.in?([:async, :async_server]) && in_server_process?)
104
+ execution_mode == :async_all ||
105
+ (execution_mode.in?([:async, :async_server]) && in_server_process?)
100
106
  end
101
107
 
102
108
  # Whether in +:external+ execution mode.
103
109
  # @return [Boolean]
104
110
  def execute_externally?
105
- @configuration.execution_mode == :external ||
106
- (@configuration.execution_mode.in?([:async, :async_server]) && !in_server_process?)
111
+ execution_mode.nil? ||
112
+ execution_mode == :external ||
113
+ (execution_mode.in?([:async, :async_server]) && !in_server_process?)
107
114
  end
108
115
 
109
116
  # Whether in +:inline+ execution mode.
110
117
  # @return [Boolean]
111
118
  def execute_inline?
112
- @configuration.execution_mode == :inline
119
+ execution_mode == :inline
113
120
  end
114
121
 
115
122
  # Start async executors
@@ -118,12 +125,12 @@ module GoodJob
118
125
  return unless execute_async?
119
126
 
120
127
  @notifier = GoodJob::Notifier.new
121
- @poller = GoodJob::Poller.new(poll_interval: @configuration.poll_interval)
122
- @scheduler = GoodJob::Scheduler.from_configuration(@configuration, warm_cache_on_initialize: true)
128
+ @poller = GoodJob::Poller.new(poll_interval: GoodJob.configuration.poll_interval)
129
+ @scheduler = GoodJob::Scheduler.from_configuration(GoodJob.configuration, warm_cache_on_initialize: true)
123
130
  @notifier.recipients << [@scheduler, :create_thread]
124
131
  @poller.recipients << [@scheduler, :create_thread]
125
132
 
126
- @cron_manager = GoodJob::CronManager.new(@configuration.cron_entries, start_on_initialize: true) if @configuration.enable_cron?
133
+ @cron_manager = GoodJob::CronManager.new(GoodJob.configuration.cron_entries, start_on_initialize: true) if GoodJob.configuration.enable_cron?
127
134
 
128
135
  @_async_started = true
129
136
  end
@@ -141,10 +148,14 @@ module GoodJob
141
148
  def in_server_process?
142
149
  return @_in_server_process if defined? @_in_server_process
143
150
 
144
- @_in_server_process = Rails.const_defined?(:Server) ||
145
- caller.grep(%r{config.ru}).any? || # EXAMPLE: config.ru:3:in `block in <main>' OR config.ru:3:in `new_from_string'
146
- caller.grep(%{/rack/handler/}).any? || # EXAMPLE: iodine-0.7.44/lib/rack/handler/iodine.rb:13:in `start'
147
- (Concurrent.on_jruby? && caller.grep(%r{jruby/rack/rails_booter}).any?) # EXAMPLE: uri:classloader:/jruby/rack/rails_booter.rb:83:in `load_environment'
151
+ @_in_server_process = Rails.const_defined?(:Server) || begin
152
+ self_caller = caller
153
+
154
+ self_caller.grep(%r{config.ru}).any? || # EXAMPLE: config.ru:3:in `block in <main>' OR config.ru:3:in `new_from_string'
155
+ self_caller.grep(%r{puma/request}).any? || # EXAMPLE: puma-5.6.4/lib/puma/request.rb:76:in `handle_request'
156
+ self_caller.grep(%{/rack/handler/}).any? || # EXAMPLE: iodine-0.7.44/lib/rack/handler/iodine.rb:13:in `start'
157
+ (Concurrent.on_jruby? && self_caller.grep(%r{jruby/rack/rails_booter}).any?) # EXAMPLE: uri:classloader:/jruby/rack/rails_booter.rb:83:in `load_environment'
158
+ end
148
159
  end
149
160
  end
150
161
  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
- configuration = GoodJob::Configuration.new(options)
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
- configuration = GoodJob::Configuration.new(options)
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
- 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)
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}
@@ -0,0 +1,4 @@
1
+ module GoodJob
2
+ module Enqueing
3
+ end
4
+ end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  require 'active_support/core_ext/module/attribute_accessors_per_thread'
3
3
  require 'concurrent/atomic/atomic_boolean'
4
+ require "good_job/notifier/process_registration"
4
5
 
5
6
  module GoodJob # :nodoc:
6
7
  #
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  module GoodJob
3
3
  # GoodJob gem version.
4
- VERSION = '3.3.0'
4
+ VERSION = '3.3.3'
5
5
  end
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 "zeitwerk"
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
- configuration = GoodJob::Configuration.new({})
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.0
4
+ version: 3.3.3
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-24 00:00:00.000000000 Z
11
+ date: 2022-08-02 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: '0'
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: '0'
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,7 @@ 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
429
+ - lib/good_job/enqueuing.rb
436
430
  - lib/good_job/job_performer.rb
437
431
  - lib/good_job/log_subscriber.rb
438
432
  - lib/good_job/multi_scheduler.rb
@@ -442,14 +436,6 @@ files:
442
436
  - lib/good_job/probe_server.rb
443
437
  - lib/good_job/scheduler.rb
444
438
  - 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
439
  homepage: https://github.com/bensheldon/good_job
454
440
  licenses:
455
441
  - MIT
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
- module GoodJob
3
- module ActiveJobExtensions
4
- end
5
- end