good_job 4.10.1 → 4.11.0

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: a3393f8a982a0d97722270c3c564db24bb73f173efeaf36495609e40bc21a495
4
- data.tar.gz: fef9ab12503e8d81126811246a3f35aecf5c64808cc1fb0b0aefab76f91a556b
3
+ metadata.gz: 3ea0d288f72729d06fa912bb31fc26fdb95be09488347ae1f2e1de091f9517b3
4
+ data.tar.gz: f613ddf4c9eb310f2e7f382309c3084cf283b62681a38c57446a3816855dbe14
5
5
  SHA512:
6
- metadata.gz: f543c672d6d24b8b70c4e23180f15fc01d3c51e484815c9e87d2f296040d4c56213f3a2b82a13bfc6600dd395a2db1fda02278a6e1252c874f7d21fb940ec549
7
- data.tar.gz: 9e22965243e674f6429beb718423e3d19cfcd26442d0190e352497fb59e884df937f92f14ec8576ab1d9129d98977259f898d8e6f7acdd9144d9c90390bb5f5e
6
+ metadata.gz: 1eb544531de26bf4f483b0b3d19d9f035e198343da429c97ad3db94c604da29d3d5f74c0cdf50a6712e02bf97bbede278ac48dc0c6572b5d6c447d27dd5e2760
7
+ data.tar.gz: 8ad6d26f2bf94c545e3630cd3e06f7fc7975943233dd49468358f252c2ad827c6871c65a8cec3bd6f19d430a472a5a84b820d84be17e195e07e6dd3fe5033b45
data/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # Changelog
2
2
 
3
+ ## [v4.11.0](https://github.com/bensheldon/good_job/tree/v4.11.0) (2025-06-30)
4
+
5
+ [Full Changelog](https://github.com/bensheldon/good_job/compare/v4.10.2...v4.11.0)
6
+
7
+ **Implemented enhancements:**
8
+
9
+ - Add GoodJob::Adapter\#stopping to support Active Job continuations feature [\#1646](https://github.com/bensheldon/good_job/pull/1646) ([bensheldon](https://github.com/bensheldon))
10
+
11
+ **Merged pull requests:**
12
+
13
+ - Fix Probe Server handling server shutdown on SIGINT when daemonized [\#1644](https://github.com/bensheldon/good_job/pull/1644) ([bensheldon](https://github.com/bensheldon))
14
+
15
+ ## [v4.10.2](https://github.com/bensheldon/good_job/tree/v4.10.2) (2025-05-29)
16
+
17
+ [Full Changelog](https://github.com/bensheldon/good_job/compare/v4.10.1...v4.10.2)
18
+
19
+ **Fixed bugs:**
20
+
21
+ - Fix Dashboard retries by wrapping in original/application locale [\#1643](https://github.com/bensheldon/good_job/pull/1643) ([bensheldon](https://github.com/bensheldon))
22
+
23
+ **Closed issues:**
24
+
25
+ - I18n::InvalidLocale in GoodJob::JobsController\#mass\_update [\#1641](https://github.com/bensheldon/good_job/issues/1641)
26
+
27
+ **Merged pull requests:**
28
+
29
+ - Fix the path for the extended dashboard views in README.md [\#1638](https://github.com/bensheldon/good_job/pull/1638) ([zarembas](https://github.com/zarembas))
30
+
3
31
  ## [v4.10.1](https://github.com/bensheldon/good_job/tree/v4.10.1) (2025-05-20)
4
32
 
5
33
  [Full Changelog](https://github.com/bensheldon/good_job/compare/v4.10.0...v4.10.1)
data/README.md CHANGED
@@ -470,8 +470,8 @@ The Dashboard can be set to automatically refresh by checking "Live Poll" in the
470
470
 
471
471
  GoodJob exposes some views that are intended to be overriden by placing views in your application:
472
472
 
473
- - [`app/views/good_job/jobs/_custom_job_details.html.erb`](app/views/good_job/_custom_job_details.html.erb): content added to this partial will be displayed above the argument list on the good_job/jobs#show page.
474
- - [`app/views/good_job/jobs/_custom_execution_details.html.erb`](app/views/good_job/_custom_execution_details.html.erb): content added to this partial will be displayed above each execution on the good_job/jobs#show page.
473
+ - [`app/views/good_job/_custom_job_details.html.erb`](app/views/good_job/_custom_job_details.html.erb): content added to this partial will be displayed above the argument list on the good_job/jobs#show page.
474
+ - [`app/views/good_job/_custom_execution_details.html.erb`](app/views/good_job/_custom_execution_details.html.erb): content added to this partial will be displayed above each execution on the good_job/jobs#show page.
475
475
 
476
476
  **Warning:** these partials expose classes (such as `GoodJob::Job`) that are considered internal implementation details of GoodJob. You should always test your custom partials after upgrading GoodJob.
477
477
 
@@ -38,7 +38,7 @@ module GoodJob
38
38
  when :reschedule
39
39
  job.reschedule_job
40
40
  when :retry
41
- job.retry_job
41
+ use_original_locale { job.retry_job }
42
42
  when :destroy
43
43
  job.destroy_job
44
44
  end
@@ -84,7 +84,7 @@ module GoodJob
84
84
 
85
85
  def retry
86
86
  @job = Job.find(params[:id])
87
- @job.retry_job
87
+ use_original_locale { @job.retry_job }
88
88
  redirect_back(fallback_location: jobs_path, notice: t(".notice"))
89
89
  end
90
90
 
@@ -173,6 +173,15 @@ module GoodJob
173
173
  end
174
174
  end
175
175
 
176
+ # Whether the current job execution thread is shutting down.
177
+ # This is intended to be called from within the context of a performing job.
178
+ # Jobs can call this while performing via `queue_adapter.stopping?` to support
179
+ # job continuations/iterations.
180
+ # @return [Boolean]
181
+ def stopping?
182
+ GoodJob.current_thread_shutting_down?
183
+ end
184
+
176
185
  # Shut down the thread pool executors.
177
186
  # @param timeout [nil, Numeric, NONE] Seconds to wait for active threads.
178
187
  # * +nil+ trigger a shutdown but not wait for it to complete.
@@ -33,7 +33,7 @@ module GoodJob
33
33
  start_server
34
34
  handle_connections if @running.true?
35
35
  rescue StandardError => e
36
- @logger.error "Server encountered an error: #{e}"
36
+ @logger.error "Server encountered an error: #{e.class} - #{e}"
37
37
  ensure
38
38
  stop
39
39
  end
@@ -60,8 +60,14 @@ module GoodJob
60
60
  end
61
61
 
62
62
  client.close
63
- rescue IO::WaitReadable, Errno::EINTR, Errno::EPIPE
64
- retry
63
+ rescue IO::WaitReadable, Errno::EINTR
64
+ retry # on transient errors
65
+ rescue Errno::EPIPE
66
+ next # Client disconnected - continue
67
+ rescue Errno::EBADF
68
+ break if @server&.closed? # Server shut down - stop
69
+
70
+ raise
65
71
  end
66
72
  end
67
73
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module GoodJob
4
4
  # GoodJob gem version.
5
- VERSION = '4.10.1'
5
+ VERSION = '4.11.0'
6
6
 
7
7
  # GoodJob version as Gem::Version object
8
8
  GEM_VERSION = Gem::Version.new(VERSION)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: good_job
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.10.1
4
+ version: 4.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Sheldon
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
10
+ date: 2025-06-30 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: activejob
@@ -240,9 +240,9 @@ executables:
240
240
  - good_job
241
241
  extensions: []
242
242
  extra_rdoc_files:
243
+ - README.md
243
244
  - CHANGELOG.md
244
245
  - LICENSE.txt
245
- - README.md
246
246
  files:
247
247
  - CHANGELOG.md
248
248
  - LICENSE.txt
@@ -421,7 +421,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
421
421
  - !ruby/object:Gem::Version
422
422
  version: '0'
423
423
  requirements: []
424
- rubygems_version: 3.6.8
424
+ rubygems_version: 3.6.2
425
425
  specification_version: 4
426
426
  summary: A multithreaded, Postgres-based ActiveJob backend for Ruby on Rails
427
427
  test_files: []