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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +71 -0
- data/README.md +1 -1
- data/app/charts/good_job/base_chart.rb +25 -0
- data/app/charts/good_job/performance_index_chart.rb +69 -0
- data/app/charts/good_job/performance_show_chart.rb +71 -0
- data/app/charts/good_job/scheduled_by_queue_chart.rb +23 -28
- data/app/controllers/good_job/application_controller.rb +1 -1
- data/app/controllers/good_job/frontends_controller.rb +6 -2
- data/app/controllers/good_job/metrics_controller.rb +5 -15
- data/app/controllers/good_job/performance_controller.rb +6 -1
- data/app/frontend/good_job/icons.svg +79 -0
- data/app/frontend/good_job/modules/charts.js +5 -17
- data/app/frontend/good_job/style.css +5 -0
- data/app/helpers/good_job/application_helper.rb +9 -1
- 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 +14 -35
- data/app/models/concerns/good_job/reportable.rb +8 -12
- data/app/models/good_job/batch.rb +10 -5
- data/app/models/good_job/batch_record.rb +18 -15
- data/app/models/good_job/discrete_execution.rb +6 -60
- 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 +569 -14
- data/app/models/good_job/process.rb +13 -29
- data/app/views/good_job/batches/_jobs.erb +1 -1
- data/app/views/good_job/batches/_table.erb +1 -1
- data/app/views/good_job/jobs/index.html.erb +1 -1
- data/app/views/good_job/performance/index.html.erb +3 -1
- data/app/views/good_job/performance/show.html.erb +5 -0
- data/app/views/good_job/shared/_filter.erb +2 -2
- data/app/views/layouts/good_job/application.html.erb +7 -7
- data/config/brakeman.ignore +75 -0
- data/config/locales/de.yml +52 -48
- data/config/locales/en.yml +4 -0
- data/config/locales/es.yml +16 -12
- data/config/locales/fr.yml +4 -0
- data/config/locales/it.yml +4 -0
- data/config/locales/ja.yml +4 -0
- data/config/locales/ko.yml +4 -0
- data/config/locales/nl.yml +4 -0
- data/config/locales/pt-BR.yml +4 -0
- data/config/locales/ru.yml +4 -0
- data/config/locales/tr.yml +4 -0
- data/config/locales/uk.yml +4 -0
- data/config/routes.rb +4 -4
- data/lib/good_job/active_job_extensions/concurrency.rb +105 -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 +1 -1
- data/lib/good_job/configuration.rb +3 -4
- data/lib/good_job/cron_manager.rb +1 -3
- data/lib/good_job/current_thread.rb +4 -4
- data/lib/good_job/notifier.rb +7 -0
- data/lib/good_job/version.rb +1 -1
- data/lib/good_job.rb +6 -5
- metadata +10 -20
- data/app/models/good_job/base_execution.rb +0 -609
- 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/version.rb
CHANGED
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.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-
|
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.
|
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
|