README.md in resque-retry-0.0.1 vs README.md in resque-retry-0.0.2
- old
+ new
@@ -1,9 +1,9 @@
resque-retry
============
-A [Resque][rq] plugin. Requires Resque 1.8.0.
+A [Resque][rq] plugin. Requires Resque 1.8.0 & [resque-scheduler][rqs]
resque-retry provides retry, delay and exponential backoff support for
resque jobs.
### Features
@@ -11,14 +11,10 @@
- Redis backed retry count/limit.
- Retry on all or specific exceptions.
- Exponential backoff (varying the delay between retrys).
- Small & Extendable - plenty of places to override retry logic/settings.
-**n.b.** [resque-scheduler][rqs] is _really_ recommended if you wish to
-delay between retry attempts, otherwise your workers will block
-using `sleep`.
-
Usage / Examples
----------------
Just extend your module/class with this module, and your ready to retry!
@@ -31,10 +27,11 @@
require 'require-retry'
class DeliverWebHook
extend Resque::Plugins::Retry
+ @queue = :web_hooks
def self.perform(url, hook_id, hmac_key)
heavy_lifting
end
end
@@ -45,10 +42,12 @@
### Custom Retry
class DeliverWebHook
extend Resque::Plugins::Retry
+ @queue = :web_hooks
+
@retry_limit = 10
@retry_delay = 120
def self.perform(url, hook_id, hmac_key)
heavy_lifting
@@ -65,10 +64,11 @@
Use this if you wish to vary the delay between retry attempts:
class DeliverSMS
extend Resque::Plugins::ExponentialBackoff
+ @queue = :mt_messages
def self.perform(mt_id, mobile_number, message)
heavy_lifting
end
end
@@ -91,12 +91,14 @@
The default will allow a retry for any type of exception. You may change
it so only specific exceptions are retried using `retry_exceptions`:
class DeliverSMS
extend Resque::Plugins::Retry
+ @queue = :mt_messages
+
@retry_exceptions = [NetworkError]
-
+
def self.perform(mt_id, mobile_number, message)
heavy_lifting
end
end
@@ -125,10 +127,11 @@
Or you can define the entire key by overriding `redis_retry_key`.
class DeliverSMS
extend Resque::Plugins::Retry
+ @queue = :mt_messages
def self.identifier(mt_id, mobile_number, message)
"#{mobile_number}:#{mt_id}"
end
@@ -142,10 +145,11 @@
You may override `args_for_retry`, which is passed the current
job arguments, to modify the arguments for the next retry attempt.
class DeliverViaSMSC
extend Resque::Plugins::Retry
-
+ @queue = :mt_smsc_messages
+
# retry using the emergency SMSC.
def self.args_for_retry(smsc_id, mt_message)
[999, mt_message]
end
\ No newline at end of file