good_job 4.1.0 → 4.2.0

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