good_job 4.0.3 → 4.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +71 -0
  3. data/README.md +1 -1
  4. data/app/charts/good_job/base_chart.rb +25 -0
  5. data/app/charts/good_job/performance_index_chart.rb +69 -0
  6. data/app/charts/good_job/performance_show_chart.rb +71 -0
  7. data/app/charts/good_job/scheduled_by_queue_chart.rb +23 -28
  8. data/app/controllers/good_job/application_controller.rb +1 -1
  9. data/app/controllers/good_job/frontends_controller.rb +6 -2
  10. data/app/controllers/good_job/metrics_controller.rb +5 -15
  11. data/app/controllers/good_job/performance_controller.rb +6 -1
  12. data/app/frontend/good_job/icons.svg +79 -0
  13. data/app/frontend/good_job/modules/charts.js +5 -17
  14. data/app/frontend/good_job/style.css +5 -0
  15. data/app/helpers/good_job/application_helper.rb +9 -1
  16. data/app/helpers/good_job/icons_helper.rb +8 -5
  17. data/app/models/concerns/good_job/advisory_lockable.rb +17 -7
  18. data/app/models/concerns/good_job/error_events.rb +14 -35
  19. data/app/models/concerns/good_job/reportable.rb +8 -12
  20. data/app/models/good_job/batch.rb +10 -5
  21. data/app/models/good_job/batch_record.rb +18 -15
  22. data/app/models/good_job/discrete_execution.rb +6 -60
  23. data/app/models/good_job/execution.rb +59 -4
  24. data/app/models/good_job/execution_result.rb +6 -6
  25. data/app/models/good_job/job.rb +569 -14
  26. data/app/models/good_job/process.rb +13 -29
  27. data/app/views/good_job/batches/_jobs.erb +1 -1
  28. data/app/views/good_job/batches/_table.erb +1 -1
  29. data/app/views/good_job/jobs/index.html.erb +1 -1
  30. data/app/views/good_job/performance/index.html.erb +3 -1
  31. data/app/views/good_job/performance/show.html.erb +5 -0
  32. data/app/views/good_job/shared/_filter.erb +2 -2
  33. data/app/views/layouts/good_job/application.html.erb +7 -7
  34. data/config/brakeman.ignore +75 -0
  35. data/config/locales/de.yml +52 -48
  36. data/config/locales/en.yml +4 -0
  37. data/config/locales/es.yml +16 -12
  38. data/config/locales/fr.yml +4 -0
  39. data/config/locales/it.yml +4 -0
  40. data/config/locales/ja.yml +4 -0
  41. data/config/locales/ko.yml +4 -0
  42. data/config/locales/nl.yml +4 -0
  43. data/config/locales/pt-BR.yml +4 -0
  44. data/config/locales/ru.yml +4 -0
  45. data/config/locales/tr.yml +4 -0
  46. data/config/locales/uk.yml +4 -0
  47. data/config/routes.rb +4 -4
  48. data/lib/good_job/active_job_extensions/concurrency.rb +105 -98
  49. data/lib/good_job/adapter/inline_buffer.rb +73 -0
  50. data/lib/good_job/adapter.rb +59 -53
  51. data/lib/good_job/capsule_tracker.rb +1 -1
  52. data/lib/good_job/configuration.rb +3 -4
  53. data/lib/good_job/cron_manager.rb +1 -3
  54. data/lib/good_job/current_thread.rb +4 -4
  55. data/lib/good_job/notifier.rb +7 -0
  56. data/lib/good_job/version.rb +1 -1
  57. data/lib/good_job.rb +6 -5
  58. metadata +10 -20
  59. data/app/models/good_job/base_execution.rb +0 -609
  60. data/app/views/good_job/shared/icons/_arrow_clockwise.html.erb +0 -5
  61. data/app/views/good_job/shared/icons/_check.html.erb +0 -5
  62. data/app/views/good_job/shared/icons/_circle_half.html.erb +0 -4
  63. data/app/views/good_job/shared/icons/_clock.html.erb +0 -5
  64. data/app/views/good_job/shared/icons/_dash_circle.html.erb +0 -5
  65. data/app/views/good_job/shared/icons/_dots.html.erb +0 -3
  66. data/app/views/good_job/shared/icons/_eject.html.erb +0 -4
  67. data/app/views/good_job/shared/icons/_exclamation.html.erb +0 -5
  68. data/app/views/good_job/shared/icons/_globe.html.erb +0 -3
  69. data/app/views/good_job/shared/icons/_info.html.erb +0 -4
  70. data/app/views/good_job/shared/icons/_moon_stars_fill.html.erb +0 -5
  71. data/app/views/good_job/shared/icons/_pause.html.erb +0 -4
  72. data/app/views/good_job/shared/icons/_play.html.erb +0 -4
  73. data/app/views/good_job/shared/icons/_skip_forward.html.erb +0 -4
  74. data/app/views/good_job/shared/icons/_stop.html.erb +0 -4
  75. data/app/views/good_job/shared/icons/_sun_fill.html.erb +0 -4
@@ -2,7 +2,7 @@
2
2
 
3
3
  module GoodJob
4
4
  # GoodJob gem version.
5
- VERSION = '4.0.3'
5
+ VERSION = '4.1.1'
6
6
 
7
7
  # GoodJob version as Gem::Version object
8
8
  GEM_VERSION = Gem::Version.new(VERSION)
data/lib/good_job.rb CHANGED
@@ -7,6 +7,7 @@ require_relative "good_job/version"
7
7
  require_relative "good_job/engine"
8
8
 
9
9
  require_relative "good_job/adapter"
10
+ require_relative "good_job/adapter/inline_buffer"
10
11
  require_relative "active_job/queue_adapters/good_job_adapter"
11
12
  require_relative "good_job/active_job_extensions/batches"
12
13
  require_relative "good_job/active_job_extensions/concurrency"
@@ -211,7 +212,7 @@ module GoodJob
211
212
  ActiveSupport::Notifications.instrument("cleanup_preserved_jobs.good_job", { older_than: older_than, timestamp: timestamp }) do |payload|
212
213
  deleted_jobs_count = 0
213
214
  deleted_batches_count = 0
214
- deleted_discrete_executions_count = 0
215
+ deleted_executions_count = 0
215
216
 
216
217
  jobs_query = GoodJob::Job.finished_before(timestamp).order(finished_at: :asc).limit(in_batches_of)
217
218
  jobs_query = jobs_query.succeeded unless include_discarded
@@ -219,8 +220,8 @@ module GoodJob
219
220
  active_job_ids = jobs_query.pluck(:active_job_id)
220
221
  break if active_job_ids.empty?
221
222
 
222
- deleted_discrete_executions = GoodJob::DiscreteExecution.where(active_job_id: active_job_ids).delete_all
223
- deleted_discrete_executions_count += deleted_discrete_executions
223
+ deleted_executions = GoodJob::Execution.where(active_job_id: active_job_ids).delete_all
224
+ deleted_executions_count += deleted_executions
224
225
 
225
226
  deleted_jobs = GoodJob::Job.where(active_job_id: active_job_ids).delete_all
226
227
  deleted_jobs_count += deleted_jobs
@@ -236,10 +237,10 @@ module GoodJob
236
237
  end
237
238
 
238
239
  payload[:destroyed_batches_count] = deleted_batches_count
239
- payload[:destroyed_discrete_executions_count] = deleted_discrete_executions_count
240
+ payload[:destroyed_executions_count] = deleted_executions_count
240
241
  payload[:destroyed_jobs_count] = deleted_jobs_count
241
242
 
242
- destroyed_records_count = deleted_batches_count + deleted_discrete_executions_count + deleted_jobs_count
243
+ destroyed_records_count = deleted_batches_count + deleted_executions_count + deleted_jobs_count
243
244
  payload[:destroyed_records_count] = destroyed_records_count
244
245
 
245
246
  destroyed_records_count
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.3
4
+ version: 4.1.1
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-10 00:00:00.000000000 Z
11
+ date: 2024-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activejob
@@ -248,6 +248,9 @@ files:
248
248
  - CHANGELOG.md
249
249
  - LICENSE.txt
250
250
  - README.md
251
+ - app/charts/good_job/base_chart.rb
252
+ - app/charts/good_job/performance_index_chart.rb
253
+ - app/charts/good_job/performance_show_chart.rb
251
254
  - app/charts/good_job/scheduled_by_queue_chart.rb
252
255
  - app/controllers/good_job/application_controller.rb
253
256
  - app/controllers/good_job/batches_controller.rb
@@ -261,6 +264,7 @@ files:
261
264
  - app/filters/good_job/batches_filter.rb
262
265
  - app/filters/good_job/jobs_filter.rb
263
266
  - app/frontend/good_job/application.js
267
+ - app/frontend/good_job/icons.svg
264
268
  - app/frontend/good_job/modules/async_values_controller.js
265
269
  - app/frontend/good_job/modules/charts.js
266
270
  - app/frontend/good_job/modules/checkbox_toggle.js
@@ -283,7 +287,6 @@ files:
283
287
  - app/models/concerns/good_job/filterable.rb
284
288
  - app/models/concerns/good_job/reportable.rb
285
289
  - app/models/good_job/active_record_parent_class.rb
286
- - app/models/good_job/base_execution.rb
287
290
  - app/models/good_job/base_record.rb
288
291
  - app/models/good_job/batch.rb
289
292
  - app/models/good_job/batch_record.rb
@@ -308,6 +311,7 @@ files:
308
311
  - app/views/good_job/jobs/index.html.erb
309
312
  - app/views/good_job/jobs/show.html.erb
310
313
  - app/views/good_job/performance/index.html.erb
314
+ - app/views/good_job/performance/show.html.erb
311
315
  - app/views/good_job/processes/index.html.erb
312
316
  - app/views/good_job/shared/_alert.erb
313
317
  - app/views/good_job/shared/_chart.erb
@@ -315,24 +319,9 @@ files:
315
319
  - app/views/good_job/shared/_footer.erb
316
320
  - app/views/good_job/shared/_navbar.erb
317
321
  - app/views/good_job/shared/_secondary_navbar.erb
318
- - app/views/good_job/shared/icons/_arrow_clockwise.html.erb
319
- - app/views/good_job/shared/icons/_check.html.erb
320
- - app/views/good_job/shared/icons/_circle_half.html.erb
321
- - app/views/good_job/shared/icons/_clock.html.erb
322
- - app/views/good_job/shared/icons/_dash_circle.html.erb
323
- - app/views/good_job/shared/icons/_dots.html.erb
324
- - app/views/good_job/shared/icons/_eject.html.erb
325
- - app/views/good_job/shared/icons/_exclamation.html.erb
326
- - app/views/good_job/shared/icons/_globe.html.erb
327
- - app/views/good_job/shared/icons/_info.html.erb
328
- - app/views/good_job/shared/icons/_moon_stars_fill.html.erb
329
- - app/views/good_job/shared/icons/_pause.html.erb
330
- - app/views/good_job/shared/icons/_play.html.erb
331
- - app/views/good_job/shared/icons/_skip_forward.html.erb
332
- - app/views/good_job/shared/icons/_stop.html.erb
333
- - app/views/good_job/shared/icons/_sun_fill.html.erb
334
322
  - app/views/good_job/shared/icons/_trash.html.erb
335
323
  - app/views/layouts/good_job/application.html.erb
324
+ - config/brakeman.ignore
336
325
  - config/locales/de.yml
337
326
  - config/locales/en.yml
338
327
  - config/locales/es.yml
@@ -359,6 +348,7 @@ files:
359
348
  - lib/good_job/active_job_extensions/labels.rb
360
349
  - lib/good_job/active_job_extensions/notify_options.rb
361
350
  - lib/good_job/adapter.rb
351
+ - lib/good_job/adapter/inline_buffer.rb
362
352
  - lib/good_job/bulk.rb
363
353
  - lib/good_job/callable.rb
364
354
  - lib/good_job/capsule.rb
@@ -423,7 +413,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
423
413
  - !ruby/object:Gem::Version
424
414
  version: '0'
425
415
  requirements: []
426
- rubygems_version: 3.5.14
416
+ rubygems_version: 3.5.11
427
417
  signing_key:
428
418
  specification_version: 4
429
419
  summary: A multithreaded, Postgres-based ActiveJob backend for Ruby on Rails