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