good_job 3.3.0 → 3.3.3

Sign up to get free protection for your applications and to get access to all the features.
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