good_job 4.1.0 → 4.2.0

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.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +71 -0
  3. data/README.md +10 -10
  4. data/app/charts/good_job/performance_index_chart.rb +1 -1
  5. data/app/charts/good_job/performance_show_chart.rb +1 -1
  6. data/app/controllers/good_job/application_controller.rb +1 -1
  7. data/app/controllers/good_job/batches_controller.rb +6 -0
  8. data/app/controllers/good_job/frontends_controller.rb +6 -2
  9. data/app/controllers/good_job/performance_controller.rb +1 -1
  10. data/app/frontend/good_job/icons.svg +79 -0
  11. data/app/frontend/good_job/style.css +5 -0
  12. data/app/helpers/good_job/icons_helper.rb +8 -5
  13. data/app/models/concerns/good_job/advisory_lockable.rb +17 -7
  14. data/app/models/concerns/good_job/error_events.rb +2 -2
  15. data/app/models/concerns/good_job/reportable.rb +8 -12
  16. data/app/models/good_job/batch.rb +31 -9
  17. data/app/models/good_job/batch_record.rb +19 -20
  18. data/app/models/good_job/discrete_execution.rb +6 -59
  19. data/app/models/good_job/execution.rb +59 -4
  20. data/app/models/good_job/execution_result.rb +6 -6
  21. data/app/models/good_job/job.rb +543 -12
  22. data/app/models/good_job/process.rb +14 -3
  23. data/app/views/good_job/batches/_jobs.erb +1 -1
  24. data/app/views/good_job/batches/_table.erb +7 -1
  25. data/app/views/good_job/batches/show.html.erb +8 -0
  26. data/app/views/good_job/jobs/index.html.erb +1 -1
  27. data/app/views/layouts/good_job/application.html.erb +7 -7
  28. data/config/brakeman.ignore +75 -0
  29. data/config/locales/de.yml +54 -49
  30. data/config/locales/en.yml +5 -0
  31. data/config/locales/es.yml +19 -14
  32. data/config/locales/fr.yml +5 -0
  33. data/config/locales/it.yml +5 -0
  34. data/config/locales/ja.yml +10 -5
  35. data/config/locales/ko.yml +9 -4
  36. data/config/locales/nl.yml +5 -0
  37. data/config/locales/pt-BR.yml +5 -0
  38. data/config/locales/ru.yml +5 -0
  39. data/config/locales/tr.yml +5 -0
  40. data/config/locales/uk.yml +6 -1
  41. data/config/routes.rb +8 -4
  42. data/lib/good_job/active_job_extensions/concurrency.rb +109 -98
  43. data/lib/good_job/adapter/inline_buffer.rb +73 -0
  44. data/lib/good_job/adapter.rb +59 -53
  45. data/lib/good_job/capsule_tracker.rb +2 -2
  46. data/lib/good_job/configuration.rb +13 -12
  47. data/lib/good_job/cron_manager.rb +1 -3
  48. data/lib/good_job/current_thread.rb +4 -4
  49. data/lib/good_job/notifier/process_heartbeat.rb +3 -2
  50. data/lib/good_job/version.rb +1 -1
  51. data/lib/good_job.rb +6 -5
  52. metadata +6 -20
  53. data/app/models/good_job/base_execution.rb +0 -605
  54. data/app/views/good_job/shared/icons/_arrow_clockwise.html.erb +0 -5
  55. data/app/views/good_job/shared/icons/_check.html.erb +0 -5
  56. data/app/views/good_job/shared/icons/_circle_half.html.erb +0 -4
  57. data/app/views/good_job/shared/icons/_clock.html.erb +0 -5
  58. data/app/views/good_job/shared/icons/_dash_circle.html.erb +0 -5
  59. data/app/views/good_job/shared/icons/_dots.html.erb +0 -3
  60. data/app/views/good_job/shared/icons/_eject.html.erb +0 -4
  61. data/app/views/good_job/shared/icons/_exclamation.html.erb +0 -5
  62. data/app/views/good_job/shared/icons/_globe.html.erb +0 -3
  63. data/app/views/good_job/shared/icons/_info.html.erb +0 -4
  64. data/app/views/good_job/shared/icons/_moon_stars_fill.html.erb +0 -5
  65. data/app/views/good_job/shared/icons/_pause.html.erb +0 -4
  66. data/app/views/good_job/shared/icons/_play.html.erb +0 -4
  67. data/app/views/good_job/shared/icons/_skip_forward.html.erb +0 -4
  68. data/app/views/good_job/shared/icons/_stop.html.erb +0 -4
  69. data/app/views/good_job/shared/icons/_sun_fill.html.erb +0 -4
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.1.0
4
+ version: 4.2.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-16 00:00:00.000000000 Z
11
+ date: 2024-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activejob
@@ -264,6 +264,7 @@ files:
264
264
  - app/filters/good_job/batches_filter.rb
265
265
  - app/filters/good_job/jobs_filter.rb
266
266
  - app/frontend/good_job/application.js
267
+ - app/frontend/good_job/icons.svg
267
268
  - app/frontend/good_job/modules/async_values_controller.js
268
269
  - app/frontend/good_job/modules/charts.js
269
270
  - app/frontend/good_job/modules/checkbox_toggle.js
@@ -286,7 +287,6 @@ files:
286
287
  - app/models/concerns/good_job/filterable.rb
287
288
  - app/models/concerns/good_job/reportable.rb
288
289
  - app/models/good_job/active_record_parent_class.rb
289
- - app/models/good_job/base_execution.rb
290
290
  - app/models/good_job/base_record.rb
291
291
  - app/models/good_job/batch.rb
292
292
  - app/models/good_job/batch_record.rb
@@ -319,24 +319,9 @@ files:
319
319
  - app/views/good_job/shared/_footer.erb
320
320
  - app/views/good_job/shared/_navbar.erb
321
321
  - app/views/good_job/shared/_secondary_navbar.erb
322
- - app/views/good_job/shared/icons/_arrow_clockwise.html.erb
323
- - app/views/good_job/shared/icons/_check.html.erb
324
- - app/views/good_job/shared/icons/_circle_half.html.erb
325
- - app/views/good_job/shared/icons/_clock.html.erb
326
- - app/views/good_job/shared/icons/_dash_circle.html.erb
327
- - app/views/good_job/shared/icons/_dots.html.erb
328
- - app/views/good_job/shared/icons/_eject.html.erb
329
- - app/views/good_job/shared/icons/_exclamation.html.erb
330
- - app/views/good_job/shared/icons/_globe.html.erb
331
- - app/views/good_job/shared/icons/_info.html.erb
332
- - app/views/good_job/shared/icons/_moon_stars_fill.html.erb
333
- - app/views/good_job/shared/icons/_pause.html.erb
334
- - app/views/good_job/shared/icons/_play.html.erb
335
- - app/views/good_job/shared/icons/_skip_forward.html.erb
336
- - app/views/good_job/shared/icons/_stop.html.erb
337
- - app/views/good_job/shared/icons/_sun_fill.html.erb
338
322
  - app/views/good_job/shared/icons/_trash.html.erb
339
323
  - app/views/layouts/good_job/application.html.erb
324
+ - config/brakeman.ignore
340
325
  - config/locales/de.yml
341
326
  - config/locales/en.yml
342
327
  - config/locales/es.yml
@@ -363,6 +348,7 @@ files:
363
348
  - lib/good_job/active_job_extensions/labels.rb
364
349
  - lib/good_job/active_job_extensions/notify_options.rb
365
350
  - lib/good_job/adapter.rb
351
+ - lib/good_job/adapter/inline_buffer.rb
366
352
  - lib/good_job/bulk.rb
367
353
  - lib/good_job/callable.rb
368
354
  - lib/good_job/capsule.rb
@@ -427,7 +413,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
427
413
  - !ruby/object:Gem::Version
428
414
  version: '0'
429
415
  requirements: []
430
- rubygems_version: 3.5.14
416
+ rubygems_version: 3.5.11
431
417
  signing_key:
432
418
  specification_version: 4
433
419
  summary: A multithreaded, Postgres-based ActiveJob backend for Ruby on Rails