good_job 1.2.6 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7bb8c33f26176b048399e596b7c4c5dcb10553209b9237fe6256e7af66b1ffcc
4
- data.tar.gz: b401649bfe1dee5f83575e82cb2703407c2ddc367dabaabc05f41d9f79e4315d
3
+ metadata.gz: 17fac9485f08bf55c8d2b2fbbc6e85efde95202d759d6155a4b23bf0755236ce
4
+ data.tar.gz: 562115863243ac98e3fd0cca7c04ad9f57a80f932682d7161e43336b521ea62d
5
5
  SHA512:
6
- metadata.gz: d38c25e5f61a8d6509f323509ecd5e0fb49a31466b58a3eae47a5614b0e56f3b30a90725d8e57dc0d170a1cda635cb49850cc98d6b4c1c4033c8a65db691af8c
7
- data.tar.gz: 31add663e7307890b66f89e14b5ea164c9c67252c695db50f0d761921308019fcf7874984db7f263ae67557d1538f6b25d15271ca9880190b6faf13dc29346f8
6
+ metadata.gz: a06ee5d2bea077e7b612f6d44aa30666d52517849e5345d8882a9f21653513be2386e577dbbab8ad41897aeb48d14885cbfe8cd51784c96da300aee7233a5190
7
+ data.tar.gz: 7c366b21a4f28d66ce8d59d22fa56a081a63c181ee0b35ddd7965422c7c758f020bc7fba42aa34e61ec8abb17e9dcc5a9d0cb3b15f2d1c03d7153d83d7fbffdd
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## [v1.3.0](https://github.com/bensheldon/good_job/tree/v1.3.0) (2020-10-03)
4
+
5
+ [Full Changelog](https://github.com/bensheldon/good_job/compare/v1.2.6...v1.3.0)
6
+
7
+ **Merged pull requests:**
8
+
9
+ - Lengthen default poll interval from 1 to 5 seconds [\#156](https://github.com/bensheldon/good_job/pull/156) ([bensheldon](https://github.com/bensheldon))
10
+ - Rename reperform\_jobs\_on\_standard\_error to retry\_on\_unhandled\_error [\#154](https://github.com/bensheldon/good_job/pull/154) ([morgoth](https://github.com/morgoth))
11
+
3
12
  ## [v1.2.6](https://github.com/bensheldon/good_job/tree/v1.2.6) (2020-09-29)
4
13
 
5
14
  [Full Changelog](https://github.com/bensheldon/good_job/compare/v1.2.5...v1.2.6)
data/README.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # GoodJob
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/good_job.svg)](https://rubygems.org/gems/good_job)
4
+ [![Test Status](https://github.com/bensheldon/good_job/workflows/Test/badge.svg)](https://github.com/bensheldon/good_job/actions)
5
+
3
6
  GoodJob is a multithreaded, Postgres-based, ActiveJob backend for Ruby on Rails.
4
7
 
5
8
  **Inspired by [Delayed::Job](https://github.com/collectiveidea/delayed_job) and [Que](https://github.com/que-rb/que), GoodJob is designed for maximum compatibility with Ruby on Rails, ActiveJob, and Postgres to be simple and performant for most workloads.**
@@ -210,7 +213,7 @@ Good Job’s general behavior can also be configured via several attributes dire
210
213
 
211
214
  - **`GoodJob.logger`** ([Rails Logger](https://api.rubyonrails.org/classes/ActiveSupport/Logger.html)) lets you set a custom logger for GoodJob. It should be an instance of a Rails `Logger`.
212
215
  - **`GoodJob.preserve_job_records`** (boolean) keeps job records in your database even after jobs are completed. (Default: `false`)
213
- - **`GoodJob.reperform_jobs_on_standard_error`** (boolean) causes jobs to be re-queued and retried if they raise an instance of `StandardError`. Instances of `Exception`, like SIGINT, will *always* be retried, regardless of this attribute’s value. (Default: `true`)
216
+ - **`GoodJob.retry_on_unhandled_error`** (boolean) causes jobs to be re-queued and retried if they raise an instance of `StandardError`. Instances of `Exception`, like SIGINT, will *always* be retried, regardless of this attribute’s value. (Default: `true`)
214
217
  - **`GoodJob.on_thread_error`** (proc, lambda, or callable) will be called when an Exception. It can be useful for logging errors to bug tracking services, like Sentry or Airbrake.
215
218
 
216
219
  You’ll generally want to configure these in `config/initializers/good_job.rb`, like so:
@@ -218,7 +221,7 @@ You’ll generally want to configure these in `config/initializers/good_job.rb`,
218
221
  ```ruby
219
222
  # config/initializers/good_job.rb
220
223
  GoodJob.preserve_job_records = true
221
- GoodJob.reperform_jobs_on_standard_error = false
224
+ GoodJob.retry_on_unhandled_error = false
222
225
  GoodJob.on_thread_error = -> (exception) { Raven.capture_exception(exception) }
223
226
  ```
224
227
 
@@ -301,7 +304,7 @@ When using `retry_on` with _a limited number of retries_, the final exception wi
301
304
 
302
305
  ```ruby
303
306
  # config/initializers/good_job.rb
304
- GoodJob.reperform_jobs_on_standard_error = false
307
+ GoodJob.retry_on_unhandled_error = false
305
308
  ```
306
309
 
307
310
  Alternatively, pass a block to `retry_on` to handle the final exception instead of raising it to GoodJob:
@@ -37,14 +37,30 @@ module GoodJob
37
37
  # @return [Boolean]
38
38
  mattr_accessor :preserve_job_records, default: false
39
39
 
40
- # @!attribute [rw] reperform_jobs_on_standard_error
40
+ # @!attribute [rw] retry_on_unhandled_error
41
41
  # @!scope class
42
42
  # Whether to re-perform a job when a type of +StandardError+ is raised to GoodJob (default: +true+).
43
43
  # If +true+, causes jobs to be re-queued and retried if they raise an instance of +StandardError+.
44
44
  # If +false+, jobs will be discarded or marked as finished if they raise an instance of +StandardError+.
45
45
  # Instances of +Exception+, like +SIGINT+, will *always* be retried, regardless of this attribute's value.
46
46
  # @return [Boolean]
47
- mattr_accessor :reperform_jobs_on_standard_error, default: true
47
+ mattr_accessor :retry_on_unhandled_error, default: true
48
+
49
+ # @deprecated Use {GoodJob#retry_on_unhandled_error} instead.
50
+ def self.reperform_jobs_on_standard_error
51
+ ActiveSupport::Deprecation.warn(
52
+ "Calling 'GoodJob.reperform_jobs_on_standard_error' is deprecated. Please use 'retry_on_unhandled_error'"
53
+ )
54
+ retry_on_unhandled_error
55
+ end
56
+
57
+ # @deprecated Use {GoodJob#retry_on_unhandled_error=} instead.
58
+ def self.reperform_jobs_on_standard_error=(value)
59
+ ActiveSupport::Deprecation.warn(
60
+ "Setting 'GoodJob.reperform_jobs_on_standard_error=' is deprecated. Please use 'retry_on_unhandled_error='"
61
+ )
62
+ self.retry_on_unhandled_error = value
63
+ end
48
64
 
49
65
  # @!attribute [rw] on_thread_error
50
66
  # @!scope class
@@ -42,7 +42,7 @@ module GoodJob
42
42
  method_option :poll_interval,
43
43
  type: :numeric,
44
44
  banner: 'SECONDS',
45
- desc: "Interval between polls for available jobs in seconds (env var: GOOD_JOB_POLL_INTERVAL, default: 1)"
45
+ desc: "Interval between polls for available jobs in seconds (env var: GOOD_JOB_POLL_INTERVAL, default: 5)"
46
46
  def start
47
47
  set_up_application!
48
48
 
@@ -8,7 +8,7 @@ module GoodJob
8
8
  # Default number of threads to use per {Scheduler}
9
9
  DEFAULT_MAX_THREADS = 5
10
10
  # Default number of seconds between polls for jobs
11
- DEFAULT_POLL_INTERVAL = 1
11
+ DEFAULT_POLL_INTERVAL = 5
12
12
  # Default number of seconds to preserve jobs for {CLI#cleanup_preserved_jobs}
13
13
  DEFAULT_CLEANUP_PRESERVED_JOBS_BEFORE_SECONDS_AGO = 24 * 60 * 60
14
14
 
@@ -204,7 +204,7 @@ module GoodJob
204
204
 
205
205
  self.error = "#{job_error.class}: #{job_error.message}" if job_error
206
206
 
207
- if unhandled_error && GoodJob.reperform_jobs_on_standard_error
207
+ if unhandled_error && GoodJob.retry_on_unhandled_error
208
208
  save!
209
209
  elsif GoodJob.preserve_job_records == true || (unhandled_error && GoodJob.preserve_job_records == :on_unhandled_error)
210
210
  self.finished_at = Time.current
@@ -1,4 +1,4 @@
1
1
  module GoodJob
2
2
  # GoodJob gem version.
3
- VERSION = '1.2.6'.freeze
3
+ VERSION = '1.3.0'.freeze
4
4
  end
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: 1.2.6
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Sheldon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-09-29 00:00:00.000000000 Z
11
+ date: 2020-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activejob