good_job 3.15.0 → 3.15.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9aa61d924db48712cf404f47b7a6f5b977f1464a29b7e97f068b21422ac8261a
4
- data.tar.gz: 9701e674925f45189bb8763f31d35a11eeb8d1f02f132cd4cc7e3db1fa6221f7
3
+ metadata.gz: 4674d611fd466270ee2bb79b4763848bced81ed16ae227dc05e0daca00b5672e
4
+ data.tar.gz: 40dda31aa1e21e6b16e4f2582354d572af271ebe270b80e6cbfceec95873f5da
5
5
  SHA512:
6
- metadata.gz: 8a07c81b1a23c12b26c21c8d3316bc01ee931e0313d3f51d811564fe80dacf86efd8a1d37f693be0e4d893983ce9aaeeccbb5c0e523410815fea052287b56c3b
7
- data.tar.gz: 46e3e5a9fe2c7fd8e82a51494e4fac3c480f0e323db1aab57ea2291d7f7db39284f0a9da70692e5b160312894f69ec31453279f541f61cbec99bfb091012af26
6
+ metadata.gz: 73ae44f8b88e70d4cfd98473920af572320157432f121b437f99718ca2182fa88d98b7f3dd4a3aec0319b6f2ddd51eb5eed1fe0290f94b605a4b9b7fedf53cc6
7
+ data.tar.gz: 932c23ebe5722a3a8d7638db77bfeefd350c219a071b8b96982cd19ad78319c2ddd3f7b178d3ebb59b7d670caf7b265c01b254c2481d13a7a6f0521f0d172c82
data/CHANGELOG.md CHANGED
@@ -1,5 +1,47 @@
1
1
  # Changelog
2
2
 
3
+ ## [v3.15.2](https://github.com/bensheldon/good_job/tree/v3.15.2) (2023-04-19)
4
+
5
+ [Full Changelog](https://github.com/bensheldon/good_job/compare/v3.15.1...v3.15.2)
6
+
7
+ **Closed issues:**
8
+
9
+ - Cleaning up preserved jobs giving me timeout [\#933](https://github.com/bensheldon/good_job/issues/933)
10
+ - uninitialized constant GoodJob::ActiveJobJob \(NameError\) [\#932](https://github.com/bensheldon/good_job/issues/932)
11
+
12
+ **Merged pull requests:**
13
+
14
+ - Use batched queries in `GoodJob::self.cleanup_preserved_jobs` [\#934](https://github.com/bensheldon/good_job/pull/934) ([bensheldon](https://github.com/bensheldon))
15
+ - Bump nokogiri from 1.14.2 to 1.14.3 [\#926](https://github.com/bensheldon/good_job/pull/926) ([dependabot[bot]](https://github.com/apps/dependabot))
16
+
17
+ ## [v3.15.1](https://github.com/bensheldon/good_job/tree/v3.15.1) (2023-04-17)
18
+
19
+ [Full Changelog](https://github.com/bensheldon/good_job/compare/v3.15.0...v3.15.1)
20
+
21
+ **Implemented enhancements:**
22
+
23
+ - Support for Batches? [\#417](https://github.com/bensheldon/good_job/issues/417)
24
+
25
+ **Fixed bugs:**
26
+
27
+ - Fix setting of locale via routes `mount ... defaults: { locale: :en }` [\#923](https://github.com/bensheldon/good_job/pull/923) ([bensheldon](https://github.com/bensheldon))
28
+ - Set `successfully_enqueued?` when using `perform_all_later` [\#917](https://github.com/bensheldon/good_job/pull/917) ([bensheldon](https://github.com/bensheldon))
29
+
30
+ **Closed issues:**
31
+
32
+ - GoodJob has pending database migrations after v2 -\> v3 [\#920](https://github.com/bensheldon/good_job/issues/920)
33
+ - Batch docs in README suggest `Batch#add` is a class method, but it's not [\#912](https://github.com/bensheldon/good_job/issues/912)
34
+ - How do I clear queue during tests? [\#887](https://github.com/bensheldon/good_job/issues/887)
35
+ - Implement batch functionality [\#691](https://github.com/bensheldon/good_job/issues/691)
36
+
37
+ **Merged pull requests:**
38
+
39
+ - In tests, directly use `connection.truncate_tables` instead of `ActiveRecord::Tasks::DatabaseTasks.truncate_all` [\#918](https://github.com/bensheldon/good_job/pull/918) ([bensheldon](https://github.com/bensheldon))
40
+ - Use `GoodJob.capsule` in CLI instead of creating a new Capsule [\#916](https://github.com/bensheldon/good_job/pull/916) ([bensheldon](https://github.com/bensheldon))
41
+ - Fix lint: missing fr and nl translations; readme whitespace [\#914](https://github.com/bensheldon/good_job/pull/914) ([bensheldon](https://github.com/bensheldon))
42
+ - Switches from Chrome to Chromium to support Apple M1/Arm CPUs [\#910](https://github.com/bensheldon/good_job/pull/910) ([ckdake](https://github.com/ckdake))
43
+ - Bump erb\_lint from 0.3.1 to 0.4.0 [\#906](https://github.com/bensheldon/good_job/pull/906) ([dependabot[bot]](https://github.com/apps/dependabot))
44
+
3
45
  ## [v3.15.0](https://github.com/bensheldon/good_job/tree/v3.15.0) (2023-04-02)
4
46
 
5
47
  [Full Changelog](https://github.com/bensheldon/good_job/compare/v3.14.2...v3.15.0)
data/README.md CHANGED
@@ -537,6 +537,7 @@ Batches track a set of jobs, and enqueue an optional callback job when all of th
537
537
  - Jobs can be added to an existing batch. Jobs in a batch are enqueued and performed immediately/asynchronously. The final callback job will not be enqueued until `GoodJob::Batch#enqueue` is called.
538
538
 
539
539
  ```ruby
540
+ batch = GoodJob::Batch.new
540
541
  batch = GoodJob::Batch.add do
541
542
  10.times { MyJob.perform_later }
542
543
  end
@@ -35,7 +35,9 @@ module GoodJob
35
35
  end
36
36
 
37
37
  def current_locale
38
- if params[:locale]
38
+ if request.GET['locale']
39
+ request.GET['locale']
40
+ elsif params[:locale]
39
41
  params[:locale]
40
42
  elsif good_job_available_locales.exclude?(I18n.default_locale) && I18n.available_locales.include?(:en)
41
43
  :en
@@ -78,8 +78,8 @@ fr:
78
78
  one: 1 jour
79
79
  other: "%{count} jours"
80
80
  x_minutes:
81
- one:
82
- other:
81
+ one: 1 minute
82
+ other: "%{count} minutes"
83
83
  x_months:
84
84
  one: 1 mois
85
85
  other: "%{count} mois"
@@ -130,8 +130,8 @@ fr:
130
130
  table:
131
131
  actions:
132
132
  apply_to_all:
133
- one:
134
- other:
133
+ one: Appliquer à tous les 1 travail.
134
+ other: Appliquer à tous les %{count} travaux.
135
135
  confirm_destroy_all: Voulez-vous vraiment détruire les travaux sélectionnés ?
136
136
  confirm_discard_all: Êtes-vous usure que vous souhaitez supprimer les emplois sélectionnés?
137
137
  confirm_reschedule_all: Voulez-vous vraiment reprogrammer les tâches sélectionnées ?
@@ -130,8 +130,8 @@ nl:
130
130
  table:
131
131
  actions:
132
132
  apply_to_all:
133
- one:
134
- other:
133
+ one: Toepassen op alle 1 baan.
134
+ other: Toepassen op alle %{count} banen.
135
135
  confirm_destroy_all: Weet u zeker dat u de geselecteerde jobs wilt vernietigen?
136
136
  confirm_discard_all: Wilt u de geselecteerde jobs verwijderen?
137
137
  confirm_reschedule_all: Weet u zeker dat u de geselecteerde taken opnieuw wilt inplannen?
@@ -64,6 +64,7 @@ module GoodJob
64
64
  job_id_to_provider_job_id = results.each_with_object({}) { |result, hash| hash[result['active_job_id']] = result['id'] }
65
65
  active_jobs.each do |active_job|
66
66
  active_job.provider_job_id = job_id_to_provider_job_id[active_job.job_id]
67
+ active_job.successfully_enqueued = active_job.provider_job_id.present? if active_job.respond_to?(:successfully_enqueued=)
67
68
  end
68
69
  executions.each do |execution|
69
70
  execution.instance_variable_set(:@new_record, false) if job_id_to_provider_job_id[execution.active_job_id]
data/lib/good_job/cli.rb CHANGED
@@ -92,10 +92,10 @@ module GoodJob
92
92
  set_up_application!
93
93
  GoodJob.configuration.options.merge!(options.symbolize_keys)
94
94
  configuration = GoodJob.configuration
95
+ capsule = GoodJob.capsule
95
96
 
96
97
  Daemon.new(pidfile: configuration.pidfile).daemonize if configuration.daemonize?
97
98
 
98
- capsule = GoodJob::Capsule.new
99
99
  capsule.start
100
100
 
101
101
  if configuration.probe_port
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  module GoodJob
3
3
  # GoodJob gem version.
4
- VERSION = '3.15.0'
4
+ VERSION = '3.15.2'
5
5
  end
data/lib/good_job.rb CHANGED
@@ -162,22 +162,33 @@ module GoodJob
162
162
  # destroy old records and preserve space in your database.
163
163
  # @param older_than [nil,Numeric,ActiveSupport::Duration] Jobs older than this will be destroyed (default: +86400+).
164
164
  # @return [Integer] Number of job execution records and batches that were destroyed.
165
- def self.cleanup_preserved_jobs(older_than: nil)
165
+ def self.cleanup_preserved_jobs(older_than: nil, in_batches_of: 1_000)
166
166
  older_than ||= GoodJob.configuration.cleanup_preserved_jobs_before_seconds_ago
167
167
  timestamp = Time.current - older_than
168
168
  include_discarded = GoodJob.configuration.cleanup_discarded_jobs?
169
169
 
170
170
  ActiveSupport::Notifications.instrument("cleanup_preserved_jobs.good_job", { older_than: older_than, timestamp: timestamp }) do |payload|
171
- old_jobs = GoodJob::Job.where('finished_at <= ?', timestamp)
172
- old_jobs = old_jobs.succeeded unless include_discarded
173
- deleted_executions_count = GoodJob::Execution.where(job: old_jobs).delete_all
171
+ deleted_executions_count = 0
172
+ deleted_batches_count = 0
173
+
174
+ jobs_query = GoodJob::Job.where('finished_at <= ?', timestamp).order(finished_at: :asc).limit(in_batches_of)
175
+ jobs_query = jobs_query.succeeded unless include_discarded
176
+ loop do
177
+ deleted = GoodJob::Execution.where(job: jobs_query).delete_all
178
+ break if deleted.zero?
179
+
180
+ deleted_executions_count += deleted
181
+ end
174
182
 
175
183
  if GoodJob::BatchRecord.migrated?
176
- old_batches = GoodJob::BatchRecord.where('finished_at <= ?', timestamp)
177
- old_batches = old_batches.succeeded unless include_discarded
178
- deleted_batches_count = old_batches.delete_all
179
- else
180
- deleted_batches_count = 0
184
+ batches_query = GoodJob::BatchRecord.where('finished_at <= ?', timestamp).limit(in_batches_of)
185
+ batches_query = batches_query.succeeded unless include_discarded
186
+ loop do
187
+ deleted = batches_query.delete_all
188
+ break if deleted.zero?
189
+
190
+ deleted_batches_count += deleted
191
+ end
181
192
  end
182
193
 
183
194
  payload[:destroyed_executions_count] = deleted_executions_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: 3.15.0
4
+ version: 3.15.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Sheldon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-04-02 00:00:00.000000000 Z
11
+ date: 2023-04-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activejob