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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +71 -0
- data/README.md +10 -10
- data/app/charts/good_job/performance_index_chart.rb +1 -1
- data/app/charts/good_job/performance_show_chart.rb +1 -1
- data/app/controllers/good_job/application_controller.rb +1 -1
- data/app/controllers/good_job/batches_controller.rb +6 -0
- data/app/controllers/good_job/frontends_controller.rb +6 -2
- data/app/controllers/good_job/performance_controller.rb +1 -1
- data/app/frontend/good_job/icons.svg +79 -0
- data/app/frontend/good_job/style.css +5 -0
- data/app/helpers/good_job/icons_helper.rb +8 -5
- data/app/models/concerns/good_job/advisory_lockable.rb +17 -7
- data/app/models/concerns/good_job/error_events.rb +2 -2
- data/app/models/concerns/good_job/reportable.rb +8 -12
- data/app/models/good_job/batch.rb +31 -9
- data/app/models/good_job/batch_record.rb +19 -20
- data/app/models/good_job/discrete_execution.rb +6 -59
- data/app/models/good_job/execution.rb +59 -4
- data/app/models/good_job/execution_result.rb +6 -6
- data/app/models/good_job/job.rb +543 -12
- data/app/models/good_job/process.rb +14 -3
- data/app/views/good_job/batches/_jobs.erb +1 -1
- data/app/views/good_job/batches/_table.erb +7 -1
- data/app/views/good_job/batches/show.html.erb +8 -0
- data/app/views/good_job/jobs/index.html.erb +1 -1
- data/app/views/layouts/good_job/application.html.erb +7 -7
- data/config/brakeman.ignore +75 -0
- data/config/locales/de.yml +54 -49
- data/config/locales/en.yml +5 -0
- data/config/locales/es.yml +19 -14
- data/config/locales/fr.yml +5 -0
- data/config/locales/it.yml +5 -0
- data/config/locales/ja.yml +10 -5
- data/config/locales/ko.yml +9 -4
- data/config/locales/nl.yml +5 -0
- data/config/locales/pt-BR.yml +5 -0
- data/config/locales/ru.yml +5 -0
- data/config/locales/tr.yml +5 -0
- data/config/locales/uk.yml +6 -1
- data/config/routes.rb +8 -4
- data/lib/good_job/active_job_extensions/concurrency.rb +109 -98
- data/lib/good_job/adapter/inline_buffer.rb +73 -0
- data/lib/good_job/adapter.rb +59 -53
- data/lib/good_job/capsule_tracker.rb +2 -2
- data/lib/good_job/configuration.rb +13 -12
- data/lib/good_job/cron_manager.rb +1 -3
- data/lib/good_job/current_thread.rb +4 -4
- data/lib/good_job/notifier/process_heartbeat.rb +3 -2
- data/lib/good_job/version.rb +1 -1
- data/lib/good_job.rb +6 -5
- metadata +6 -20
- data/app/models/good_job/base_execution.rb +0 -605
- data/app/views/good_job/shared/icons/_arrow_clockwise.html.erb +0 -5
- data/app/views/good_job/shared/icons/_check.html.erb +0 -5
- data/app/views/good_job/shared/icons/_circle_half.html.erb +0 -4
- data/app/views/good_job/shared/icons/_clock.html.erb +0 -5
- data/app/views/good_job/shared/icons/_dash_circle.html.erb +0 -5
- data/app/views/good_job/shared/icons/_dots.html.erb +0 -3
- data/app/views/good_job/shared/icons/_eject.html.erb +0 -4
- data/app/views/good_job/shared/icons/_exclamation.html.erb +0 -5
- data/app/views/good_job/shared/icons/_globe.html.erb +0 -3
- data/app/views/good_job/shared/icons/_info.html.erb +0 -4
- data/app/views/good_job/shared/icons/_moon_stars_fill.html.erb +0 -5
- data/app/views/good_job/shared/icons/_pause.html.erb +0 -4
- data/app/views/good_job/shared/icons/_play.html.erb +0 -4
- data/app/views/good_job/shared/icons/_skip_forward.html.erb +0 -4
- data/app/views/good_job/shared/icons/_stop.html.erb +0 -4
- 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
|
-
|
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
|
-
|
223
|
-
|
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[:
|
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 +
|
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.
|
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-
|
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.
|
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
|