good_job 3.28.1 → 3.28.3
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 +33 -1
- data/README.md +1 -1
- data/app/models/good_job/execution.rb +1 -1
- data/lib/good_job/active_job_extensions/batches.rb +6 -0
- data/lib/good_job/multi_scheduler.rb +2 -2
- data/lib/good_job/version.rb +1 -1
- data/lib/good_job.rb +2 -2
- metadata +3 -3
- /data/lib/generators/good_job/templates/update/migrations/{10_create_good_job_execution_error_backtrace.rb.erb → 12_create_good_job_execution_error_backtrace.rb.erb} +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 38648843be987ab00d188e3564768440abc82e43ffe96b628431e34041152e8f
|
|
4
|
+
data.tar.gz: 6d3a99426cc7fab00b03ef81116b84315a1bf634cb6b619f2263a4e367545271
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b3931885de25ffa50f38fa39045238f5a38e4c57f695b8f3e94a1042db09eaf8a87cf3f46b7e01cf498cad60667c63ab1f9bc3c95d8ccc8fb5857cec16e66032
|
|
7
|
+
data.tar.gz: de8333dad6dd69694212e753642667c0be22dd72c39db530369ce4932d438d090e92139a0eb03163e3cd563bf91c21506725a068279e068a14f5ba31c8720e16
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [v3.28.3](https://github.com/bensheldon/good_job/tree/v3.28.3) (2024-05-18)
|
|
4
|
+
|
|
5
|
+
[Full Changelog](https://github.com/bensheldon/good_job/compare/v3.28.2...v3.28.3)
|
|
6
|
+
|
|
7
|
+
**Fixed bugs:**
|
|
8
|
+
|
|
9
|
+
- Strip more whitespace when parsing queues string [\#1352](https://github.com/bensheldon/good_job/pull/1352) ([bensheldon](https://github.com/bensheldon))
|
|
10
|
+
- Fix latest migration not affecting `GoodJob.migrated?` [\#1345](https://github.com/bensheldon/good_job/pull/1345) ([Earlopain](https://github.com/Earlopain))
|
|
11
|
+
|
|
12
|
+
**Closed issues:**
|
|
13
|
+
|
|
14
|
+
- Whitespace in `queues` configuration can cause issues. [\#1351](https://github.com/bensheldon/good_job/issues/1351)
|
|
15
|
+
- How to properly handle interrupts [\#1343](https://github.com/bensheldon/good_job/issues/1343)
|
|
16
|
+
- ActiveSupport::CurrentAttributes Compatibility [\#1341](https://github.com/bensheldon/good_job/issues/1341)
|
|
17
|
+
|
|
18
|
+
**Merged pull requests:**
|
|
19
|
+
|
|
20
|
+
- Don't abort CI jobs when a single one fails [\#1346](https://github.com/bensheldon/good_job/pull/1346) ([Earlopain](https://github.com/Earlopain))
|
|
21
|
+
- Clarify PgBouncer Compatibility [\#1338](https://github.com/bensheldon/good_job/pull/1338) ([isaac](https://github.com/isaac))
|
|
22
|
+
|
|
23
|
+
## [v3.28.2](https://github.com/bensheldon/good_job/tree/v3.28.2) (2024-04-26)
|
|
24
|
+
|
|
25
|
+
[Full Changelog](https://github.com/bensheldon/good_job/compare/v3.28.1...v3.28.2)
|
|
26
|
+
|
|
27
|
+
**Fixed bugs:**
|
|
28
|
+
|
|
29
|
+
- Add debug warning message when a job is enqueued within a batch/bulk capture but not to the GoodJob Adapter [\#1339](https://github.com/bensheldon/good_job/pull/1339) ([bensheldon](https://github.com/bensheldon))
|
|
30
|
+
|
|
31
|
+
**Closed issues:**
|
|
32
|
+
|
|
33
|
+
- How do I add jobs to an existing batch? [\#1337](https://github.com/bensheldon/good_job/issues/1337)
|
|
34
|
+
- Executing perform\_now on a good\_job with GoodJobs::ActiveJobExtensions::Concurrency can run twice [\#1335](https://github.com/bensheldon/good_job/issues/1335)
|
|
35
|
+
|
|
3
36
|
## [v3.28.1](https://github.com/bensheldon/good_job/tree/v3.28.1) (2024-04-24)
|
|
4
37
|
|
|
5
38
|
[Full Changelog](https://github.com/bensheldon/good_job/compare/v3.28.0...v3.28.1)
|
|
@@ -10,7 +43,6 @@
|
|
|
10
43
|
|
|
11
44
|
**Closed issues:**
|
|
12
45
|
|
|
13
|
-
- Executing perform\_now on a good\_job with GoodJobs::ActiveJobExtensions::Concurrency can run twice [\#1335](https://github.com/bensheldon/good_job/issues/1335)
|
|
14
46
|
- `erb_lint` doesn't lint all files [\#1329](https://github.com/bensheldon/good_job/issues/1329)
|
|
15
47
|
- Server hangs after \#1297 [\#1301](https://github.com/bensheldon/good_job/issues/1301)
|
|
16
48
|
- Figure out how to use bind parameters for time queries [\#1285](https://github.com/bensheldon/good_job/issues/1285)
|
data/README.md
CHANGED
|
@@ -1383,7 +1383,7 @@ _Note: Rails `travel`/`travel_to` time helpers do not have millisecond precision
|
|
|
1383
1383
|
|
|
1384
1384
|
GoodJob is not compatible with PgBouncer in _transaction_ mode, but is compatible with PgBouncer's _connection_ mode. GoodJob uses connection-based advisory locks and LISTEN/NOTIFY, both of which require full database connections.
|
|
1385
1385
|
|
|
1386
|
-
|
|
1386
|
+
If you want to use PgBouncer with the rest of your Rails app you can workaround this limitation by making a direct database connection available to GoodJob. With Rails 6.0's support for [multiple databases](https://guides.rubyonrails.org/active_record_multiple_databases.html), a direct connection to the database can be configured by following the three steps below.
|
|
1387
1387
|
|
|
1388
1388
|
1. Define a direct connection to your database that is not proxied through PgBouncer, for example:
|
|
1389
1389
|
|
|
@@ -5,6 +5,12 @@ module GoodJob
|
|
|
5
5
|
module Batches
|
|
6
6
|
extend ActiveSupport::Concern
|
|
7
7
|
|
|
8
|
+
included do
|
|
9
|
+
before_enqueue do |job|
|
|
10
|
+
GoodJob.logger.debug("#{job.class} was enqueued within a batch or bulk capture block but is not using the GoodJob Adapter; the job will not appear in GoodJob.") if (GoodJob::Bulk.current_buffer || GoodJob::Batch.current_batch_id) && !job.class.queue_adapter.is_a?(GoodJob::Adapter)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
8
14
|
def batch
|
|
9
15
|
@_batch ||= CurrentThread.execution&.batch&.to_batch if CurrentThread.execution.present? && CurrentThread.execution.active_job_id == job_id
|
|
10
16
|
end
|
|
@@ -8,8 +8,8 @@ module GoodJob
|
|
|
8
8
|
# @param warm_cache_on_initialize [Boolean]
|
|
9
9
|
# @return [GoodJob::MultiScheduler]
|
|
10
10
|
def self.from_configuration(configuration, warm_cache_on_initialize: false)
|
|
11
|
-
schedulers = configuration.queue_string.split(';').map do |queue_string_and_max_threads|
|
|
12
|
-
queue_string, max_threads = queue_string_and_max_threads.split(':')
|
|
11
|
+
schedulers = configuration.queue_string.split(';').map(&:strip).map do |queue_string_and_max_threads|
|
|
12
|
+
queue_string, max_threads = queue_string_and_max_threads.split(':').map { |str| str.strip.presence }
|
|
13
13
|
max_threads = (max_threads || configuration.max_threads).to_i
|
|
14
14
|
|
|
15
15
|
job_performer = GoodJob::JobPerformer.new(queue_string)
|
data/lib/good_job/version.rb
CHANGED
data/lib/good_job.rb
CHANGED
|
@@ -277,8 +277,8 @@ module GoodJob
|
|
|
277
277
|
# @return [Boolean]
|
|
278
278
|
def self.migrated?
|
|
279
279
|
# Always update with the most recent migration check
|
|
280
|
-
GoodJob::
|
|
281
|
-
GoodJob::
|
|
280
|
+
GoodJob::DiscreteExecution.reset_column_information
|
|
281
|
+
GoodJob::DiscreteExecution.backtrace_migrated?
|
|
282
282
|
end
|
|
283
283
|
|
|
284
284
|
ActiveSupport.run_load_hooks(:good_job, self)
|
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.28.
|
|
4
|
+
version: 3.28.3
|
|
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-05-18 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activejob
|
|
@@ -357,9 +357,9 @@ files:
|
|
|
357
357
|
- lib/generators/good_job/templates/update/migrations/07_recreate_good_job_cron_indexes_with_conditional.rb.erb
|
|
358
358
|
- lib/generators/good_job/templates/update/migrations/08_create_good_job_labels.rb.erb
|
|
359
359
|
- lib/generators/good_job/templates/update/migrations/09_create_good_job_labels_index.rb.erb
|
|
360
|
-
- lib/generators/good_job/templates/update/migrations/10_create_good_job_execution_error_backtrace.rb.erb
|
|
361
360
|
- lib/generators/good_job/templates/update/migrations/10_remove_good_job_active_id_index.rb.erb
|
|
362
361
|
- lib/generators/good_job/templates/update/migrations/11_create_index_good_job_jobs_for_candidate_lookup.rb.erb
|
|
362
|
+
- lib/generators/good_job/templates/update/migrations/12_create_good_job_execution_error_backtrace.rb.erb
|
|
363
363
|
- lib/generators/good_job/update_generator.rb
|
|
364
364
|
- lib/good_job.rb
|
|
365
365
|
- lib/good_job/active_job_extensions/batches.rb
|