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 +4 -4
- data/CHANGELOG.md +42 -0
- data/README.md +1 -0
- data/app/controllers/good_job/application_controller.rb +3 -1
- data/config/locales/fr.yml +4 -4
- data/config/locales/nl.yml +2 -2
- data/lib/good_job/adapter.rb +1 -0
- data/lib/good_job/cli.rb +1 -1
- data/lib/good_job/version.rb +1 -1
- data/lib/good_job.rb +20 -9
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4674d611fd466270ee2bb79b4763848bced81ed16ae227dc05e0daca00b5672e
|
|
4
|
+
data.tar.gz: 40dda31aa1e21e6b16e4f2582354d572af271ebe270b80e6cbfceec95873f5da
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
|
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
|
data/config/locales/fr.yml
CHANGED
|
@@ -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 ?
|
data/config/locales/nl.yml
CHANGED
|
@@ -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?
|
data/lib/good_job/adapter.rb
CHANGED
|
@@ -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
|
data/lib/good_job/version.rb
CHANGED
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
|
-
|
|
172
|
-
|
|
173
|
-
|
|
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
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
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.
|
|
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-
|
|
11
|
+
date: 2023-04-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activejob
|