good_job 3.30.0 → 3.99.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -196,6 +196,14 @@ de:
196
196
  thousand: K
197
197
  trillion: T
198
198
  unit: ''
199
+ performances:
200
+ show:
201
+ average_duration: Durchschnittliche Dauer
202
+ executions: Hinrichtungen
203
+ job_class: Berufsklasse
204
+ maximum_duration: Maximale Dauer
205
+ minimum_duration: Mindestdauer
206
+ title: Leistung
199
207
  processes:
200
208
  index:
201
209
  cron_enabled: Cron aktiviert
@@ -225,6 +233,7 @@ de:
225
233
  jobs: Jobs
226
234
  live_poll: Live Poll
227
235
  name: "GoodJob 👍"
236
+ performances: Leistung
228
237
  processes: Prozesse
229
238
  theme:
230
239
  auto: Auto
@@ -241,3 +250,5 @@ de:
241
250
  running: Laufend
242
251
  scheduled: Geplant
243
252
  succeeded: Erfolgreich
253
+ shared:
254
+ needs_migration: Bitte führen Sie GoodJob-Migrationen aus.
@@ -196,6 +196,14 @@ en:
196
196
  thousand: K
197
197
  trillion: T
198
198
  unit: ''
199
+ performances:
200
+ show:
201
+ average_duration: Average duration
202
+ executions: Executions
203
+ job_class: Job class
204
+ maximum_duration: Maximum duration
205
+ minimum_duration: Minimum duration
206
+ title: Performance
199
207
  processes:
200
208
  index:
201
209
  cron_enabled: Cron enabled
@@ -225,6 +233,7 @@ en:
225
233
  jobs: Jobs
226
234
  live_poll: Live Poll
227
235
  name: "GoodJob 👍"
236
+ performances: Performance
228
237
  processes: Processes
229
238
  theme:
230
239
  auto: Auto
@@ -241,3 +250,5 @@ en:
241
250
  running: Running
242
251
  scheduled: Scheduled
243
252
  succeeded: Succeeded
253
+ shared:
254
+ needs_migration: Please run GoodJob migrations.
@@ -196,6 +196,14 @@ es:
196
196
  thousand: k
197
197
  trillion: T
198
198
  unit: ''
199
+ performances:
200
+ show:
201
+ average_duration: Duración promedio
202
+ executions: Ejecuciones
203
+ job_class: clase de trabajo
204
+ maximum_duration: Duración máxima
205
+ minimum_duration: Duración mínima
206
+ title: Actuación
199
207
  processes:
200
208
  index:
201
209
  cron_enabled: Cron habilitado
@@ -225,6 +233,7 @@ es:
225
233
  jobs: Tareas
226
234
  live_poll: En vivo
227
235
  name: "GoodJob 👍"
236
+ performances: Actuación
228
237
  processes: Procesos
229
238
  theme:
230
239
  auto: Auto
@@ -241,3 +250,5 @@ es:
241
250
  running: Ejecutando
242
251
  scheduled: Programado
243
252
  succeeded: Exitoso
253
+ shared:
254
+ needs_migration: Ejecute las migraciones de GoodJob.
@@ -196,6 +196,14 @@ fr:
196
196
  thousand: k
197
197
  trillion: J
198
198
  unit: ''
199
+ performances:
200
+ show:
201
+ average_duration: Durée moyenne
202
+ executions: Exécutions
203
+ job_class: Catégorie d'emplois
204
+ maximum_duration: Durée maximale
205
+ minimum_duration: Durée minimale
206
+ title: Performance
199
207
  processes:
200
208
  index:
201
209
  cron_enabled: Cron activé
@@ -225,6 +233,7 @@ fr:
225
233
  jobs: Jobs
226
234
  live_poll: En direct
227
235
  name: "GoodJob 👍"
236
+ performances: Performance
228
237
  processes: Processus
229
238
  theme:
230
239
  auto: Auto
@@ -241,3 +250,5 @@ fr:
241
250
  running: En cours
242
251
  scheduled: Planifiés
243
252
  succeeded: Réussis
253
+ shared:
254
+ needs_migration: Veuillez exécuter des migrations GoodJob.
@@ -196,6 +196,14 @@ it:
196
196
  thousand: K
197
197
  trillion: T
198
198
  unit: ''
199
+ performances:
200
+ show:
201
+ average_duration: Durata media
202
+ executions: Esecuzioni
203
+ job_class: Classe di lavoro
204
+ maximum_duration: Durata massima
205
+ minimum_duration: Durata minima
206
+ title: Prestazione
199
207
  processes:
200
208
  index:
201
209
  cron_enabled: Cron abilitato
@@ -225,6 +233,7 @@ it:
225
233
  jobs: Job
226
234
  live_poll: Live Poll
227
235
  name: "GoodJob 👍"
236
+ performances: Prestazione
228
237
  processes: Processi
229
238
  theme:
230
239
  auto: Auto
@@ -241,3 +250,5 @@ it:
241
250
  running: In esecuzione
242
251
  scheduled: Pianificato
243
252
  succeeded: Riuscito
253
+ shared:
254
+ needs_migration: Esegui le migrazioni GoodJob.
@@ -196,6 +196,14 @@ ja:
196
196
  thousand: K
197
197
  trillion: T
198
198
  unit: ''
199
+ performances:
200
+ show:
201
+ average_duration: 平均所要時間
202
+ executions: 処刑
203
+ job_class: 職種
204
+ maximum_duration: 最大持続時間
205
+ minimum_duration: 最小期間
206
+ title: パフォーマンス
199
207
  processes:
200
208
  index:
201
209
  cron_enabled: Cron が有効になっている
@@ -225,6 +233,7 @@ ja:
225
233
  jobs: ジョブ
226
234
  live_poll: リアルタイム更新
227
235
  name: "GoodJob 👍"
236
+ performances: パフォーマンス
228
237
  processes: プロセス
229
238
  theme:
230
239
  auto: 自動
@@ -241,3 +250,5 @@ ja:
241
250
  running: 実行中
242
251
  scheduled: スケジュール待ち
243
252
  succeeded: 成功済み
253
+ shared:
254
+ needs_migration: GoodJob 移行を実行してください。
@@ -196,6 +196,14 @@ ko:
196
196
  thousand: K
197
197
  trillion: T
198
198
  unit: ''
199
+ performances:
200
+ show:
201
+ average_duration: 평균 지속 시간
202
+ executions: 처형
203
+ job_class: 직업군
204
+ maximum_duration: 최대 기간
205
+ minimum_duration: 최소 기간
206
+ title: 성능
199
207
  processes:
200
208
  index:
201
209
  cron_enabled: Cron이 활성화되어 있음
@@ -225,6 +233,7 @@ ko:
225
233
  jobs: 작업
226
234
  live_poll: 실시간 업데이트
227
235
  name: "GoodJob 👍"
236
+ performances: 성능
228
237
  processes: 프로세스
229
238
  theme:
230
239
  auto: 자동
@@ -241,3 +250,5 @@ ko:
241
250
  running: 실행 중
242
251
  scheduled: 예정됨
243
252
  succeeded: 성공함
253
+ shared:
254
+ needs_migration: GoodJob 마이그레이션을 실행하세요.
@@ -196,6 +196,14 @@ nl:
196
196
  thousand: K
197
197
  trillion: T
198
198
  unit: ''
199
+ performances:
200
+ show:
201
+ average_duration: Gemiddelde duur
202
+ executions: Executies
203
+ job_class: Functie klasse
204
+ maximum_duration: Maximale duur
205
+ minimum_duration: Minimale duur
206
+ title: Prestatie
199
207
  processes:
200
208
  index:
201
209
  cron_enabled: Cron ingeschakeld
@@ -225,6 +233,7 @@ nl:
225
233
  jobs: Taken
226
234
  live_poll: Live Poll
227
235
  name: "GoodJob 👍"
236
+ performances: Prestatie
228
237
  processes: Processen
229
238
  theme:
230
239
  auto: Auto
@@ -241,3 +250,5 @@ nl:
241
250
  running: Rennen
242
251
  scheduled: Gepland
243
252
  succeeded: Geslaagd
253
+ shared:
254
+ needs_migration: Voer GoodJob-migraties uit.
@@ -196,6 +196,14 @@ pt-BR:
196
196
  thousand: K
197
197
  trillion: T
198
198
  unit: ''
199
+ performances:
200
+ show:
201
+ average_duration: Duração média
202
+ executions: Execuções
203
+ job_class: Classe de trabalho
204
+ maximum_duration: Duração máxima
205
+ minimum_duration: Duração mínima
206
+ title: Desempenho
199
207
  processes:
200
208
  index:
201
209
  cron_enabled: Agendamento ativado
@@ -225,6 +233,7 @@ pt-BR:
225
233
  jobs: Tarefas
226
234
  live_poll: Acompanhamento ao Vivo
227
235
  name: "GoodJob 👍"
236
+ performances: Desempenho
228
237
  processes: Processos
229
238
  theme:
230
239
  auto: Automático
@@ -241,3 +250,5 @@ pt-BR:
241
250
  running: Em execução
242
251
  scheduled: Agendado
243
252
  succeeded: Concluído com sucesso
253
+ shared:
254
+ needs_migration: Execute migrações GoodJob.
@@ -222,6 +222,14 @@ ru:
222
222
  thousand: К
223
223
  trillion: Т
224
224
  unit: ''
225
+ performances:
226
+ show:
227
+ average_duration: Средняя продолжительность
228
+ executions: Казни
229
+ job_class: Класс работы
230
+ maximum_duration: Максимальная продолжительность
231
+ minimum_duration: Минимальная продолжительность
232
+ title: Производительность
225
233
  processes:
226
234
  index:
227
235
  cron_enabled: Cron включен
@@ -251,6 +259,7 @@ ru:
251
259
  jobs: Задания
252
260
  live_poll: Обновления в реальном времени
253
261
  name: "GoodJob 👍"
262
+ performances: Производительность
254
263
  processes: Процессы
255
264
  theme:
256
265
  auto: Авто
@@ -267,3 +276,5 @@ ru:
267
276
  running: Исполняется
268
277
  scheduled: Запланировано
269
278
  succeeded: Успешно
279
+ shared:
280
+ needs_migration: Пожалуйста, запустите миграцию GoodJob.
@@ -196,6 +196,14 @@ tr:
196
196
  thousand: Bin
197
197
  trillion: Trilyon
198
198
  unit: ''
199
+ performances:
200
+ show:
201
+ average_duration: Ortalama süre
202
+ executions: İnfazlar
203
+ job_class: İş sınıfı
204
+ maximum_duration: Maksimum süre
205
+ minimum_duration: Minimum süre
206
+ title: Verim
199
207
  processes:
200
208
  index:
201
209
  cron_enabled: Cron etkin
@@ -225,6 +233,7 @@ tr:
225
233
  jobs: İşler
226
234
  live_poll: Anlık Güncelleme
227
235
  name: "GoodJob 👍"
236
+ performances: Verim
228
237
  processes: Süreçler
229
238
  theme:
230
239
  auto: Oto
@@ -241,3 +250,5 @@ tr:
241
250
  running: Çalışıyor
242
251
  scheduled: Planlandı
243
252
  succeeded: Başarılı
253
+ shared:
254
+ needs_migration: Lütfen GoodJob geçişlerini çalıştırın.
@@ -222,6 +222,14 @@ uk:
222
222
  thousand: Тис
223
223
  trillion: Трлн
224
224
  unit: ''
225
+ performances:
226
+ show:
227
+ average_duration: Середня тривалість
228
+ executions: Страти
229
+ job_class: Клас роботи
230
+ maximum_duration: Максимальна тривалість
231
+ minimum_duration: Мінімальна тривалість
232
+ title: Продуктивність
225
233
  processes:
226
234
  index:
227
235
  cron_enabled: Cron увімкнено
@@ -251,6 +259,7 @@ uk:
251
259
  jobs: Задачі
252
260
  live_poll: Живе Опитування
253
261
  name: "GoodJob 👍"
262
+ performances: Продуктивність
254
263
  processes: Процеси
255
264
  theme:
256
265
  auto: Авто
@@ -267,3 +276,5 @@ uk:
267
276
  running: Виконується
268
277
  scheduled: Заплановано
269
278
  succeeded: Успішно виконано
279
+ shared:
280
+ needs_migration: Запустіть міграції GoodJob.
data/config/routes.rb CHANGED
@@ -31,6 +31,8 @@ GoodJob::Engine.routes.draw do
31
31
 
32
32
  resources :processes, only: %i[index]
33
33
 
34
+ resource :performance, only: %i[show]
35
+
34
36
  scope :frontend, controller: :frontends do
35
37
  get "modules/:name", action: :module, as: :frontend_module, constraints: { format: 'js' }
36
38
  get "static/:name", action: :static, as: :frontend_static, constraints: { format: %w[css js] }
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  class CreateGoodJobProcessLockIds < ActiveRecord::Migration<%= migration_version %>
3
4
  def change
4
5
  reversible do |dir|
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  class CreateGoodJobProcessLockIndexes < ActiveRecord::Migration<%= migration_version %>
3
4
  disable_ddl_transaction!
4
5
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  module GoodJob
4
4
  # GoodJob gem version.
5
- VERSION = '3.30.0'
5
+ VERSION = '3.99.0'
6
6
 
7
7
  # GoodJob version as Gem::Version object
8
8
  GEM_VERSION = Gem::Version.new(VERSION)
data/lib/good_job.rb CHANGED
@@ -269,6 +269,12 @@ module GoodJob
269
269
  end
270
270
  end
271
271
 
272
+ # Tests whether GoodJob can be safely upgraded to v4
273
+ # @return [Boolean]
274
+ def self.v4_ready?
275
+ GoodJob::Job.discrete_support? && GoodJob::Job.where(finished_at: nil).where(is_discrete: [nil, false]).none?
276
+ end
277
+
272
278
  # Deprecator for providing deprecation warnings.
273
279
  # @return [ActiveSupport::Deprecation]
274
280
  def self.deprecator
@@ -287,7 +293,7 @@ module GoodJob
287
293
  def self.migrated?
288
294
  # Always update with the most recent migration check
289
295
  GoodJob::DiscreteExecution.reset_column_information
290
- GoodJob::DiscreteExecution.monotonic_duration_migrated?
296
+ GoodJob::DiscreteExecution.duration_interval_migrated?
291
297
  end
292
298
 
293
299
  ActiveSupport.run_load_hooks(:good_job, self)
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.30.0
4
+ version: 3.99.0
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-05 00:00:00.000000000 Z
11
+ date: 2024-07-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activejob
@@ -255,6 +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/performances_controller.rb
258
259
  - app/controllers/good_job/processes_controller.rb
259
260
  - app/filters/good_job/base_filter.rb
260
261
  - app/filters/good_job/batches_filter.rb
@@ -306,6 +307,7 @@ files:
306
307
  - app/views/good_job/jobs/_table.erb
307
308
  - app/views/good_job/jobs/index.html.erb
308
309
  - app/views/good_job/jobs/show.html.erb
310
+ - app/views/good_job/performances/show.html.erb
309
311
  - app/views/good_job/processes/index.html.erb
310
312
  - app/views/good_job/shared/_alert.erb
311
313
  - app/views/good_job/shared/_chart.erb