- Prevent crashing due to
nil
keys on newer Redis client
- Address
retry_key_exists?
issue that was originally reported / partially addressed here: #173 - Fix test-failures due to API / interface changes for dependencies
- Remove
[email protected]
from the test[ing] matrix as it has been EOL for quite some time at this point (as of this PR[email protected]
is also EOL, but I left this in for the time being) - Add
[email protected]
to the test[ing] matrix
- Fix Redis 4.3 breaking saving job failures with multiple failure backend
- Disable verbose logging by default during test-runs
- Remove support for ruby < 2.6
- Support
retry_delay
methods with different arity - Switch over to GitHub CI for PR test-execution
- Rework how the default
retry_limit
is calculated - Numerous documentation updates
- Do not crash if job class is not found on the resque-web server
- Address part 2 of issue #158
- Prevent
NoMethodError
when calculatingretry_delay
!!! [Potential] breaking changes -- details below !!!
- Remove support for
args_for_retry
-- it has been deprecated for almost 5 years - Work w/ shallow-clone(s) of
args
inMultipleWithRetrySuppression#save
andRetry.retry_args
- Remove deprecated options from
Gem::Specification
- Clean-up formatting in HISTORY.md
- Clean-up / refactoring in preparation for a release (
ruby
deprecations, etc.) - Loosen version requirement to allow resque v2.0 and up (@peret)
- Monkey patch in the
requeue_queue
method onto theResque::Failure
backend (this should be a temporary fix)
- Remove build support for
ruby < 2.3
,jruby < 9.1
andrbx
- Improving custom retry criteria documentation (@iloveitaly)
- Added build support for
ruby-2.2.x
,ruby-2.3.x
,ruby-2.4.x
andruby-2.5.x
- Dropped build support for
ruby-1.9.3
andruby-2.0.0
(these versions are no unsupported) - Fix some deprecation warnings in tests
- Feature: If no exact exception class is present in
@retry_exceptions
hash, try to find closest superclass (@fanfilmu) - Feature: When running Resque inline, explicitly don't try to retry, don't touch Redis (@michaelglass)
- Ability to define 'try again' and 'give up' callbacks/hooks (@thenovices)
- Allow
retry_criteria_check
to be registered with Symbols (@thenovices)
- Dependency on
resque-scheduler
bumped to ~> 4.0
- Fixed: Ensure
#constantize
is called onJob
instance.
- Fixed: Job would infinitely retry if DirtyExit exception was always raised.
- Adjust gem dependency on
resque-scheduler
to ~> 3.0 - Deprecated:
args_for_retry
in favor ofretry_args
(will output deprecation warnings if your using the older method). - Feature: Allow changing the args for a given exception using
retry_args_for_exception
(@jonp) - Feature: Allow setting
@expire_retry_key_after
on the fly (@orenmazor)
- Fixed Kernel.rand: "invalid argument - 0.0 (ArgumentError)" error with
"ExponentialBackoff" (on "Rubinius") when
retry_delay_multiplicand_min
andretry_delay_multiplicand_max
were the same value (@saizai)
- Fixed scenario where job does not get retried correctly when
perform
is not called as expected. - Feature: Optional
@expire_retry_key_after
settings; expires retry counters from redis to save you cleaning up stale state. - Feature: Expose inner-workings of plugin through debug messages using
Resque.logger
(when logging level is Logger:DEBUG).
- Fixed displaying retry information in resque web interface, caused by
Resque::Helpers
being deprecated. - Feature: Allow
@fatal_exceptions
as inverse of@retry_exceptions
, when a fatal exception is raised the job will be immediately fail. - Feature: Allow a random retry delay (within a range) when using exponential backoff strategy.
- Adjust gem dependency
resque-scheduler
.
- Remove dependence on
Resque::Helpers
, will be removed in Resque 2.0 - Use SHA1 for default
#retry_identifier
to prevents issues with long args gobbling space. - Minimum version of Resque is now ~> 1.25
** !!! WARNING !!! INCLUDES NON-BACKWARDS COMPATIBLE CHANGES **
- Fixed issues related to infinite job retries and v1.20.0 of resque.
- Minimum gem dependency versions changed: resque >= 1.10.0, resque-scheduler
= 1.9.9
- Feature: Setting
@retry_job_delegate
allows you to separate the original job from a the retry job. (@tanob/@jniesen) - Web interface will work without needing to
require
your job code. (n.b. less details available via web). - IMPORTANT:
#identifier
method has been namespaced to#retry_identifier
. - Bugfix:
Remove
button on retry web interface was not working. - Feature: Allow
tagging
exceptions with a module instead of an exception class. (@tils - Tilmann Singer)
- Feature: Ability to set
retry_delay
per exception type. (Dave Benvenuti)
- Bugfix: Fixed error when we tried to parse a number/string as JSON on the reque-retry web interface.
INCLUDES NON-BACKWARDS COMPATIBLE CHANGES
-
IMPORTANT:
retry_limit
behaviour has changed. (Nicolas Fouché) PREVIOUSLY: 0 == infinite retries. NOW: -1 == infinite retries; 0 == means never retry. -
Bugfix:
#redis_retry_key
incorrectly built key when custom identifier was used. (Bogdan Gusiev) -
Feature: Ability to sleep worker after re-queuing a job, may be used to bias against the same worker from picking up the job again. (Michael Keirnan)
-
Feature: Ability to remove retry jobs using resque-web. (Thiago Morello)
-
Added example demo application.
-
Added Bundler
Gemfile
.
- Feature: Multiple failure backend with retry suppression.
- Feature: resque-web tab showing retry information.
- Improved README documentation, added a 'Quick Start' section.
- Feature: Added support for custom retry criteria check callbacks.
- Handle our own dependancies.
- Relax gemspec dependancies.
- Bugfix: Make sure that
redis_retry_key
has no whitespace.
- Bugfix: Were calling non-existent method to delete redis key.
- Delay no-longer falls back to
sleep
. resque-scheduler is a required dependancy. - Redis key doesn't include ending colon
:
if no args were passed to the job.
- First release.