good_job 4.0.0 → 4.0.2
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 +33 -0
- data/app/controllers/good_job/{performances_controller.rb → performance_controller.rb} +2 -2
- data/app/models/good_job/base_execution.rb +2 -19
- data/app/models/good_job/discrete_execution.rb +3 -0
- data/app/models/good_job/job.rb +0 -2
- data/app/views/good_job/shared/_navbar.erb +2 -2
- data/config/locales/de.yml +3 -3
- data/config/locales/en.yml +3 -3
- data/config/locales/es.yml +3 -3
- data/config/locales/fr.yml +3 -3
- data/config/locales/it.yml +3 -3
- data/config/locales/ja.yml +3 -3
- data/config/locales/ko.yml +3 -3
- data/config/locales/nl.yml +3 -3
- data/config/locales/pt-BR.yml +3 -3
- data/config/locales/ru.yml +3 -3
- data/config/locales/tr.yml +3 -3
- data/config/locales/uk.yml +3 -3
- data/config/routes.rb +1 -1
- data/lib/good_job/cleanup_tracker.rb +1 -1
- data/lib/good_job/configuration.rb +32 -59
- data/lib/good_job/version.rb +1 -1
- data/lib/good_job.rb +5 -4
- metadata +4 -4
- /data/app/views/good_job/{performances/show.html.erb → performance/index.html.erb} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e2bd0a03d12095efe56c49c36fce5dbef909efbb4a984203c49b5ad2e0ba2fc5
|
4
|
+
data.tar.gz: 5bc6fc1c127bcffe8388b8f0994c3a2c82b31952387c6be67a35fc280bf1c4cd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a4c1d788d8c8ea031b4b4654b65b7fe170a0f24d1ffb2550a150de100c8c73f66a4b7d3b19bce99b7f752230c50c5b59829bd906cc3036759553b5615b1b451
|
7
|
+
data.tar.gz: 25b4458b92cbeca4db9f6486ee73e41f415b12ab585b35d7724f24e88f99e86b038be2e73f67b4e4bc6c60ff3d01df7903529ab9c859d3df9259db0a113460bc
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,38 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [v4.0.2](https://github.com/bensheldon/good_job/tree/v4.0.2) (2024-07-08)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/bensheldon/good_job/compare/v4.0.1...v4.0.2)
|
6
|
+
|
7
|
+
**Fixed bugs:**
|
8
|
+
|
9
|
+
- Fix a rails 6.1 deprecation warning for the duration attribute [\#1408](https://github.com/bensheldon/good_job/pull/1408) ([Earlopain](https://github.com/Earlopain))
|
10
|
+
- Actually remove deprecated configuration for `cleanup_interval_seconds`, `cleanup_interval_jobs`; remove deprecated `Lockable` [\#1406](https://github.com/bensheldon/good_job/pull/1406) ([bensheldon](https://github.com/bensheldon))
|
11
|
+
|
12
|
+
**Closed issues:**
|
13
|
+
|
14
|
+
- PG::UndefinedColumn: ERROR: column good\_job\_processes.lock\_type does not exist [\#1405](https://github.com/bensheldon/good_job/issues/1405)
|
15
|
+
- undefined method `duration=' for an instance of GoodJob::Execution [\#1404](https://github.com/bensheldon/good_job/issues/1404)
|
16
|
+
- v3 deprecations are still present [\#1399](https://github.com/bensheldon/good_job/issues/1399)
|
17
|
+
|
18
|
+
**Merged pull requests:**
|
19
|
+
|
20
|
+
- Fix Batch integration test to not exhaust database connection thread pool [\#1409](https://github.com/bensheldon/good_job/pull/1409) ([bensheldon](https://github.com/bensheldon))
|
21
|
+
- Discrete cleanup [\#1401](https://github.com/bensheldon/good_job/pull/1401) ([Earlopain](https://github.com/Earlopain))
|
22
|
+
|
23
|
+
## [v4.0.1](https://github.com/bensheldon/good_job/tree/v4.0.1) (2024-07-08)
|
24
|
+
|
25
|
+
[Full Changelog](https://github.com/bensheldon/good_job/compare/v4.0.0...v4.0.1)
|
26
|
+
|
27
|
+
**Fixed bugs:**
|
28
|
+
|
29
|
+
- Actually change `smaller_number_is_higher_priority` for v4 [\#1402](https://github.com/bensheldon/good_job/pull/1402) ([Earlopain](https://github.com/Earlopain))
|
30
|
+
|
31
|
+
**Merged pull requests:**
|
32
|
+
|
33
|
+
- Bump prism/rbi dev dependency [\#1403](https://github.com/bensheldon/good_job/pull/1403) ([Earlopain](https://github.com/Earlopain))
|
34
|
+
- Use index action for the performance controller [\#1398](https://github.com/bensheldon/good_job/pull/1398) ([Earlopain](https://github.com/Earlopain))
|
35
|
+
|
3
36
|
## [v4.0.0](https://github.com/bensheldon/good_job/tree/v4.0.0) (2024-07-07)
|
4
37
|
|
5
38
|
[Full Changelog](https://github.com/bensheldon/good_job/compare/v3.99.0...v4.0.0)
|
@@ -1,8 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module GoodJob
|
4
|
-
class
|
5
|
-
def
|
4
|
+
class PerformanceController < ApplicationController
|
5
|
+
def index
|
6
6
|
@performances = GoodJob::DiscreteExecution
|
7
7
|
.where.not(job_class: nil)
|
8
8
|
.group(:job_class)
|
@@ -25,6 +25,8 @@ module GoodJob
|
|
25
25
|
self.advisory_lockable_column = 'active_job_id'
|
26
26
|
self.implicit_order_column = 'created_at'
|
27
27
|
|
28
|
+
self.ignored_columns += ["is_discrete"]
|
29
|
+
|
28
30
|
define_model_callbacks :perform
|
29
31
|
define_model_callbacks :perform_unlocked, only: :after
|
30
32
|
|
@@ -216,14 +218,6 @@ module GoodJob
|
|
216
218
|
def coalesce_scheduled_at_created_at
|
217
219
|
arel_table.coalesce(arel_table['scheduled_at'], arel_table['created_at'])
|
218
220
|
end
|
219
|
-
|
220
|
-
def discrete_support?
|
221
|
-
true
|
222
|
-
end
|
223
|
-
end
|
224
|
-
|
225
|
-
def discrete?
|
226
|
-
is_discrete?
|
227
221
|
end
|
228
222
|
|
229
223
|
# Build an ActiveJob instance and deserialize the arguments, using `#active_job_data`.
|
@@ -545,17 +539,6 @@ module GoodJob
|
|
545
539
|
false
|
546
540
|
end
|
547
541
|
|
548
|
-
def make_discrete
|
549
|
-
self.is_discrete = true
|
550
|
-
self.id = active_job_id
|
551
|
-
self.job_class = serialized_params['job_class']
|
552
|
-
self.executions_count ||= 0
|
553
|
-
|
554
|
-
current_time = Time.current
|
555
|
-
self.created_at ||= current_time
|
556
|
-
self.scheduled_at ||= current_time
|
557
|
-
end
|
558
|
-
|
559
542
|
# Return formatted serialized_params for display in the dashboard
|
560
543
|
# @return [Hash]
|
561
544
|
def display_serialized_params
|
data/app/models/good_job/job.rb
CHANGED
@@ -46,8 +46,6 @@ module GoodJob
|
|
46
46
|
# Errored but will not be retried
|
47
47
|
scope :discarded, -> { finished.where.not(error: nil) }
|
48
48
|
|
49
|
-
scope :unfinished_undiscrete, -> { where(finished_at: nil, retried_good_job_id: nil, is_discrete: [nil, false]) }
|
50
|
-
|
51
49
|
# TODO: it would be nice to enforce these values at the model
|
52
50
|
# validates :active_job_id, presence: true
|
53
51
|
# validates :scheduled_at, presence: true
|
@@ -40,8 +40,8 @@
|
|
40
40
|
<% end %>
|
41
41
|
</li>
|
42
42
|
<li class="nav-item">
|
43
|
-
<%= link_to
|
44
|
-
<%= t(".
|
43
|
+
<%= link_to performance_index_path, class: ["nav-link", ("active" if controller_name == 'performance')] do %>
|
44
|
+
<%= t(".performance") %>
|
45
45
|
<% end %>
|
46
46
|
</li>
|
47
47
|
</ul>
|
data/config/locales/de.yml
CHANGED
@@ -194,8 +194,8 @@ de:
|
|
194
194
|
thousand: K
|
195
195
|
trillion: T
|
196
196
|
unit: ''
|
197
|
-
|
198
|
-
|
197
|
+
performance:
|
198
|
+
index:
|
199
199
|
average_duration: Durchschnittliche Dauer
|
200
200
|
executions: Hinrichtungen
|
201
201
|
job_class: Berufsklasse
|
@@ -231,7 +231,7 @@ de:
|
|
231
231
|
jobs: Jobs
|
232
232
|
live_poll: Live Poll
|
233
233
|
name: "GoodJob 👍"
|
234
|
-
|
234
|
+
performance: Leistung
|
235
235
|
processes: Prozesse
|
236
236
|
theme:
|
237
237
|
auto: Auto
|
data/config/locales/en.yml
CHANGED
@@ -194,8 +194,8 @@ en:
|
|
194
194
|
thousand: K
|
195
195
|
trillion: T
|
196
196
|
unit: ''
|
197
|
-
|
198
|
-
|
197
|
+
performance:
|
198
|
+
index:
|
199
199
|
average_duration: Average duration
|
200
200
|
executions: Executions
|
201
201
|
job_class: Job class
|
@@ -231,7 +231,7 @@ en:
|
|
231
231
|
jobs: Jobs
|
232
232
|
live_poll: Live Poll
|
233
233
|
name: "GoodJob 👍"
|
234
|
-
|
234
|
+
performance: Performance
|
235
235
|
processes: Processes
|
236
236
|
theme:
|
237
237
|
auto: Auto
|
data/config/locales/es.yml
CHANGED
@@ -194,8 +194,8 @@ es:
|
|
194
194
|
thousand: k
|
195
195
|
trillion: T
|
196
196
|
unit: ''
|
197
|
-
|
198
|
-
|
197
|
+
performance:
|
198
|
+
index:
|
199
199
|
average_duration: Duración promedio
|
200
200
|
executions: Ejecuciones
|
201
201
|
job_class: clase de trabajo
|
@@ -231,7 +231,7 @@ es:
|
|
231
231
|
jobs: Tareas
|
232
232
|
live_poll: En vivo
|
233
233
|
name: "GoodJob 👍"
|
234
|
-
|
234
|
+
performance: Actuación
|
235
235
|
processes: Procesos
|
236
236
|
theme:
|
237
237
|
auto: Auto
|
data/config/locales/fr.yml
CHANGED
@@ -194,8 +194,8 @@ fr:
|
|
194
194
|
thousand: k
|
195
195
|
trillion: J
|
196
196
|
unit: ''
|
197
|
-
|
198
|
-
|
197
|
+
performance:
|
198
|
+
index:
|
199
199
|
average_duration: Durée moyenne
|
200
200
|
executions: Exécutions
|
201
201
|
job_class: Catégorie d'emplois
|
@@ -231,7 +231,7 @@ fr:
|
|
231
231
|
jobs: Jobs
|
232
232
|
live_poll: En direct
|
233
233
|
name: "GoodJob 👍"
|
234
|
-
|
234
|
+
performance: Performance
|
235
235
|
processes: Processus
|
236
236
|
theme:
|
237
237
|
auto: Auto
|
data/config/locales/it.yml
CHANGED
@@ -194,8 +194,8 @@ it:
|
|
194
194
|
thousand: K
|
195
195
|
trillion: T
|
196
196
|
unit: ''
|
197
|
-
|
198
|
-
|
197
|
+
performance:
|
198
|
+
index:
|
199
199
|
average_duration: Durata media
|
200
200
|
executions: Esecuzioni
|
201
201
|
job_class: Classe di lavoro
|
@@ -231,7 +231,7 @@ it:
|
|
231
231
|
jobs: Job
|
232
232
|
live_poll: Live Poll
|
233
233
|
name: "GoodJob 👍"
|
234
|
-
|
234
|
+
performance: Prestazione
|
235
235
|
processes: Processi
|
236
236
|
theme:
|
237
237
|
auto: Auto
|
data/config/locales/ja.yml
CHANGED
@@ -194,8 +194,8 @@ ja:
|
|
194
194
|
thousand: K
|
195
195
|
trillion: T
|
196
196
|
unit: ''
|
197
|
-
|
198
|
-
|
197
|
+
performance:
|
198
|
+
index:
|
199
199
|
average_duration: 平均所要時間
|
200
200
|
executions: 処刑
|
201
201
|
job_class: 職種
|
@@ -231,7 +231,7 @@ ja:
|
|
231
231
|
jobs: ジョブ
|
232
232
|
live_poll: リアルタイム更新
|
233
233
|
name: "GoodJob 👍"
|
234
|
-
|
234
|
+
performance: パフォーマンス
|
235
235
|
processes: プロセス
|
236
236
|
theme:
|
237
237
|
auto: 自動
|
data/config/locales/ko.yml
CHANGED
@@ -194,8 +194,8 @@ ko:
|
|
194
194
|
thousand: K
|
195
195
|
trillion: T
|
196
196
|
unit: ''
|
197
|
-
|
198
|
-
|
197
|
+
performance:
|
198
|
+
index:
|
199
199
|
average_duration: 평균 지속 시간
|
200
200
|
executions: 처형
|
201
201
|
job_class: 직업군
|
@@ -231,7 +231,7 @@ ko:
|
|
231
231
|
jobs: 작업
|
232
232
|
live_poll: 실시간 업데이트
|
233
233
|
name: "GoodJob 👍"
|
234
|
-
|
234
|
+
performance: 성능
|
235
235
|
processes: 프로세스
|
236
236
|
theme:
|
237
237
|
auto: 자동
|
data/config/locales/nl.yml
CHANGED
@@ -194,8 +194,8 @@ nl:
|
|
194
194
|
thousand: K
|
195
195
|
trillion: T
|
196
196
|
unit: ''
|
197
|
-
|
198
|
-
|
197
|
+
performance:
|
198
|
+
index:
|
199
199
|
average_duration: Gemiddelde duur
|
200
200
|
executions: Executies
|
201
201
|
job_class: Functie klasse
|
@@ -231,7 +231,7 @@ nl:
|
|
231
231
|
jobs: Taken
|
232
232
|
live_poll: Live Poll
|
233
233
|
name: "GoodJob 👍"
|
234
|
-
|
234
|
+
performance: Prestatie
|
235
235
|
processes: Processen
|
236
236
|
theme:
|
237
237
|
auto: Auto
|
data/config/locales/pt-BR.yml
CHANGED
@@ -194,8 +194,8 @@ pt-BR:
|
|
194
194
|
thousand: K
|
195
195
|
trillion: T
|
196
196
|
unit: ''
|
197
|
-
|
198
|
-
|
197
|
+
performance:
|
198
|
+
index:
|
199
199
|
average_duration: Duração média
|
200
200
|
executions: Execuções
|
201
201
|
job_class: Classe de trabalho
|
@@ -231,7 +231,7 @@ pt-BR:
|
|
231
231
|
jobs: Tarefas
|
232
232
|
live_poll: Acompanhamento ao Vivo
|
233
233
|
name: "GoodJob 👍"
|
234
|
-
|
234
|
+
performance: Desempenho
|
235
235
|
processes: Processos
|
236
236
|
theme:
|
237
237
|
auto: Automático
|
data/config/locales/ru.yml
CHANGED
@@ -220,8 +220,8 @@ ru:
|
|
220
220
|
thousand: К
|
221
221
|
trillion: Т
|
222
222
|
unit: ''
|
223
|
-
|
224
|
-
|
223
|
+
performance:
|
224
|
+
index:
|
225
225
|
average_duration: Средняя продолжительность
|
226
226
|
executions: Казни
|
227
227
|
job_class: Класс работы
|
@@ -257,7 +257,7 @@ ru:
|
|
257
257
|
jobs: Задания
|
258
258
|
live_poll: Обновления в реальном времени
|
259
259
|
name: "GoodJob 👍"
|
260
|
-
|
260
|
+
performance: Производительность
|
261
261
|
processes: Процессы
|
262
262
|
theme:
|
263
263
|
auto: Авто
|
data/config/locales/tr.yml
CHANGED
@@ -194,8 +194,8 @@ tr:
|
|
194
194
|
thousand: Bin
|
195
195
|
trillion: Trilyon
|
196
196
|
unit: ''
|
197
|
-
|
198
|
-
|
197
|
+
performance:
|
198
|
+
index:
|
199
199
|
average_duration: Ortalama süre
|
200
200
|
executions: İnfazlar
|
201
201
|
job_class: İş sınıfı
|
@@ -231,7 +231,7 @@ tr:
|
|
231
231
|
jobs: İşler
|
232
232
|
live_poll: Anlık Güncelleme
|
233
233
|
name: "GoodJob 👍"
|
234
|
-
|
234
|
+
performance: Verim
|
235
235
|
processes: Süreçler
|
236
236
|
theme:
|
237
237
|
auto: Oto
|
data/config/locales/uk.yml
CHANGED
@@ -220,8 +220,8 @@ uk:
|
|
220
220
|
thousand: Тис
|
221
221
|
trillion: Трлн
|
222
222
|
unit: ''
|
223
|
-
|
224
|
-
|
223
|
+
performance:
|
224
|
+
index:
|
225
225
|
average_duration: Середня тривалість
|
226
226
|
executions: Страти
|
227
227
|
job_class: Клас роботи
|
@@ -257,7 +257,7 @@ uk:
|
|
257
257
|
jobs: Задачі
|
258
258
|
live_poll: Живе Опитування
|
259
259
|
name: "GoodJob 👍"
|
260
|
-
|
260
|
+
performance: Продуктивність
|
261
261
|
processes: Процеси
|
262
262
|
theme:
|
263
263
|
auto: Авто
|
data/config/routes.rb
CHANGED
@@ -31,7 +31,7 @@ GoodJob::Engine.routes.draw do
|
|
31
31
|
|
32
32
|
resources :processes, only: %i[index]
|
33
33
|
|
34
|
-
|
34
|
+
resources :performance, only: %i[index]
|
35
35
|
|
36
36
|
scope :frontend, controller: :frontends do
|
37
37
|
get "modules/:name", action: :module, as: :frontend_module, constraints: { format: 'js' }
|
@@ -9,7 +9,7 @@ module GoodJob # :nodoc:
|
|
9
9
|
:last_at
|
10
10
|
|
11
11
|
def initialize(cleanup_interval_seconds: false, cleanup_interval_jobs: false)
|
12
|
-
raise ArgumentError, "Do not use `0
|
12
|
+
raise ArgumentError, "Do not use `0` for cleanup intervals. Use `false` to disable, or -1 to always run" if cleanup_interval_seconds == 0 || cleanup_interval_jobs == 0 # rubocop:disable Style/NumericPredicate
|
13
13
|
|
14
14
|
self.cleanup_interval_seconds = cleanup_interval_seconds
|
15
15
|
self.cleanup_interval_jobs = cleanup_interval_jobs
|
@@ -35,6 +35,8 @@ module GoodJob
|
|
35
35
|
DEFAULT_DASHBOARD_LIVE_POLL_ENABLED = true
|
36
36
|
# Default enqueue_after_transaction_commit
|
37
37
|
DEFAULT_ENQUEUE_AFTER_TRANSACTION_COMMIT = false
|
38
|
+
# Default smaller_number_is_higher_priority
|
39
|
+
DEFAULT_SMALLER_NUMBER_IS_HIGHER_PRIORITY = true
|
38
40
|
|
39
41
|
def self.validate_execution_mode(execution_mode)
|
40
42
|
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)
|
@@ -228,8 +230,8 @@ module GoodJob
|
|
228
230
|
def queue_select_limit
|
229
231
|
(
|
230
232
|
options[:queue_select_limit] ||
|
231
|
-
|
232
|
-
|
233
|
+
rails_config[:queue_select_limit] ||
|
234
|
+
env['GOOD_JOB_QUEUE_SELECT_LIMIT']
|
233
235
|
)&.to_i
|
234
236
|
end
|
235
237
|
|
@@ -238,8 +240,8 @@ module GoodJob
|
|
238
240
|
def idle_timeout
|
239
241
|
(
|
240
242
|
options[:idle_timeout] ||
|
241
|
-
|
242
|
-
|
243
|
+
rails_config[:idle_timeout] ||
|
244
|
+
env['GOOD_JOB_IDLE_TIMEOUT']
|
243
245
|
)&.to_i || nil
|
244
246
|
end
|
245
247
|
|
@@ -267,69 +269,38 @@ module GoodJob
|
|
267
269
|
# Positive values will clean up after that many jobs have run, false or 0 will disable, and -1 will clean up after every job.
|
268
270
|
# @return [Integer, Boolean, nil]
|
269
271
|
def cleanup_interval_jobs
|
270
|
-
if rails_config.key?(:cleanup_interval_jobs)
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
)
|
281
|
-
value = -1
|
282
|
-
end
|
283
|
-
elsif env.key?('GOOD_JOB_CLEANUP_INTERVAL_JOBS')
|
284
|
-
value = env['GOOD_JOB_CLEANUP_INTERVAL_JOBS']
|
285
|
-
if value.blank?
|
286
|
-
GoodJob.deprecator.warn(
|
287
|
-
%(Setting `GOOD_JOB_CLEANUP_INTERVAL_JOBS` to `""` will no longer disable count-based cleanups in GoodJob v4. Set to `0` to disable, or `-1` to run every time.)
|
288
|
-
)
|
289
|
-
value = false
|
290
|
-
elsif value == '0'
|
291
|
-
value = false
|
292
|
-
end
|
272
|
+
value = if rails_config.key?(:cleanup_interval_jobs)
|
273
|
+
rails_config[:cleanup_interval_jobs]
|
274
|
+
elsif env.key?('GOOD_JOB_CLEANUP_INTERVAL_JOBS')
|
275
|
+
env['GOOD_JOB_CLEANUP_INTERVAL_JOBS']
|
276
|
+
end
|
277
|
+
|
278
|
+
if value.in? [nil, "", true]
|
279
|
+
DEFAULT_CLEANUP_INTERVAL_JOBS
|
280
|
+
elsif value.in? [0, "0", false, "false"]
|
281
|
+
false
|
293
282
|
else
|
294
|
-
value
|
283
|
+
value ? value.to_i : false
|
295
284
|
end
|
296
|
-
|
297
|
-
value ? value.to_i : false
|
298
285
|
end
|
299
286
|
|
300
287
|
# Number of seconds a {Scheduler} will wait before automatically cleaning up preserved jobs.
|
301
288
|
# Positive values will clean up after that many jobs have run, false or 0 will disable, and -1 will clean up after every job.
|
302
|
-
# @return [Integer, nil]
|
289
|
+
# @return [Integer, Boolean, nil]
|
303
290
|
def cleanup_interval_seconds
|
304
|
-
if rails_config.key?(:cleanup_interval_seconds)
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
%(Setting `config.good_job.cleanup_interval_seconds` to `0` will disable time-based cleanups in GoodJob v4. Set to `false` to disable, or `-1` to run every time.)
|
315
|
-
)
|
316
|
-
value = -1
|
317
|
-
end
|
318
|
-
elsif env.key?('GOOD_JOB_CLEANUP_INTERVAL_SECONDS')
|
319
|
-
value = env['GOOD_JOB_CLEANUP_INTERVAL_SECONDS']
|
320
|
-
if value.blank?
|
321
|
-
GoodJob.deprecator.warn(
|
322
|
-
%(Setting `GOOD_JOB_CLEANUP_INTERVAL_SECONDS` to `""` will no longer disable time-based cleanups in GoodJob v4. Set to `0` to disable, or `-1` to run every time.)
|
323
|
-
)
|
324
|
-
value = false
|
325
|
-
elsif value == '0'
|
326
|
-
value = false
|
327
|
-
end
|
291
|
+
value = if rails_config.key?(:cleanup_interval_seconds)
|
292
|
+
rails_config[:cleanup_interval_seconds]
|
293
|
+
elsif env.key?('GOOD_JOB_CLEANUP_INTERVAL_SECONDS')
|
294
|
+
env['GOOD_JOB_CLEANUP_INTERVAL_SECONDS']
|
295
|
+
end
|
296
|
+
|
297
|
+
if value.nil? || value == "" || value == true
|
298
|
+
DEFAULT_CLEANUP_INTERVAL_SECONDS
|
299
|
+
elsif value.in? [0, "0", false, "false"]
|
300
|
+
false
|
328
301
|
else
|
329
|
-
value
|
302
|
+
value ? value.to_i : false
|
330
303
|
end
|
331
|
-
|
332
|
-
value ? value.to_i : false
|
333
304
|
end
|
334
305
|
|
335
306
|
# Tests whether to daemonize the process.
|
@@ -378,7 +349,9 @@ module GoodJob
|
|
378
349
|
end
|
379
350
|
|
380
351
|
def smaller_number_is_higher_priority
|
381
|
-
rails_config[:smaller_number_is_higher_priority]
|
352
|
+
return rails_config[:smaller_number_is_higher_priority] unless rails_config[:smaller_number_is_higher_priority].nil?
|
353
|
+
|
354
|
+
DEFAULT_SMALLER_NUMBER_IS_HIGHER_PRIORITY
|
382
355
|
end
|
383
356
|
|
384
357
|
def dashboard_default_locale
|
data/lib/good_job/version.rb
CHANGED
data/lib/good_job.rb
CHANGED
@@ -269,7 +269,11 @@ module GoodJob
|
|
269
269
|
# Tests whether GoodJob can be safely upgraded to v4
|
270
270
|
# @return [Boolean]
|
271
271
|
def self.v4_ready?
|
272
|
-
GoodJob
|
272
|
+
GoodJob.deprecator.warn(<<~MSG)
|
273
|
+
Calling `GoodJob.v4_ready?` is deprecated and will be removed in GoodJob v5.
|
274
|
+
If you are reading this deprecation you are already on v4.
|
275
|
+
MSG
|
276
|
+
true
|
273
277
|
end
|
274
278
|
|
275
279
|
# Deprecator for providing deprecation warnings.
|
@@ -281,9 +285,6 @@ module GoodJob
|
|
281
285
|
end
|
282
286
|
end
|
283
287
|
|
284
|
-
include ActiveSupport::Deprecation::DeprecatedConstantAccessor
|
285
|
-
deprecate_constant :Lockable, 'GoodJob::AdvisoryLockable', deprecator: deprecator
|
286
|
-
|
287
288
|
# Whether all GoodJob migrations have been applied.
|
288
289
|
# For use in tests/CI to validate GoodJob is up-to-date.
|
289
290
|
# @return [Boolean]
|
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: 4.0.
|
4
|
+
version: 4.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Sheldon
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-07-
|
11
|
+
date: 2024-07-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activejob
|
@@ -255,7 +255,7 @@ files:
|
|
255
255
|
- app/controllers/good_job/frontends_controller.rb
|
256
256
|
- app/controllers/good_job/jobs_controller.rb
|
257
257
|
- app/controllers/good_job/metrics_controller.rb
|
258
|
-
- app/controllers/good_job/
|
258
|
+
- app/controllers/good_job/performance_controller.rb
|
259
259
|
- app/controllers/good_job/processes_controller.rb
|
260
260
|
- app/filters/good_job/base_filter.rb
|
261
261
|
- app/filters/good_job/batches_filter.rb
|
@@ -307,7 +307,7 @@ files:
|
|
307
307
|
- app/views/good_job/jobs/_table.erb
|
308
308
|
- app/views/good_job/jobs/index.html.erb
|
309
309
|
- app/views/good_job/jobs/show.html.erb
|
310
|
-
- app/views/good_job/
|
310
|
+
- app/views/good_job/performance/index.html.erb
|
311
311
|
- app/views/good_job/processes/index.html.erb
|
312
312
|
- app/views/good_job/shared/_alert.erb
|
313
313
|
- app/views/good_job/shared/_chart.erb
|
File without changes
|