rabbit-wq 1.5.0 → 1.6.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 +4 -4
- data/README.md +24 -0
- data/lib/rabbit_wq/message_handler.rb +13 -1
- data/lib/rabbit_wq/version.rb +1 -1
- data/lib/rabbit_wq/worker.rb +10 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0568de9c0fec913fcfd1095ff871c2950425caec
|
4
|
+
data.tar.gz: e518eaa0d76830ac505aeee415bc0fbf283447d4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a3ebfaafb03242620189e60586d2444b1ef3ba07c1f9fa01026e68b66bb4e6a84b9ee2205345e6ce3dd08c8ee6a26bec3241aa6f33c096e1ab22bba5e7dbd883
|
7
|
+
data.tar.gz: 1f8f34bc53f4ac2e83a7db41a8cc018b65fb7785c8480075c50f81500c4347aa33d5f9c3e5a592e5a8e204324d935f67d71b87c831b6e4836ffcb14e63877ca1
|
data/README.md
CHANGED
@@ -117,6 +117,30 @@ Called when an error is raised and either no retries were requested or are remai
|
|
117
117
|
|
118
118
|
Called when an error is raised and a retry will be attempted.
|
119
119
|
|
120
|
+
### Disabling a Worker
|
121
|
+
|
122
|
+
A worker can be disabled by overriding the #enabled? method.
|
123
|
+
|
124
|
+
class SomeWorker
|
125
|
+
include RabbitWQ::Worker
|
126
|
+
|
127
|
+
def enabled?
|
128
|
+
# some logic to determine enabled
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
By default, when a worker is disabled a log entry is created and the worker does no work and leaves hte work queue
|
133
|
+
system. In order to have the worker sent to the error queue if disabled, simply override the #error_on_disabled? method:
|
134
|
+
|
135
|
+
class SomeWorker
|
136
|
+
include RabbitWQ::Worker
|
137
|
+
|
138
|
+
def error_on_disabled?
|
139
|
+
true
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
|
120
144
|
### Logging
|
121
145
|
|
122
146
|
RabbitWQ provides a work logger that is available within all workers. You must send a reference to self
|
@@ -20,7 +20,7 @@ module RabbitWQ
|
|
20
20
|
|
21
21
|
worker = YAML::load( payload )
|
22
22
|
info ANSI.yellow { "WORKER [#{worker.object_id}] " + worker.inspect }
|
23
|
-
worker
|
23
|
+
handle_work( worker, payload )
|
24
24
|
try_on_success_callback( worker )
|
25
25
|
channel.ack delivery_info.delivery_tag
|
26
26
|
rescue => e
|
@@ -29,6 +29,18 @@ module RabbitWQ
|
|
29
29
|
|
30
30
|
protected
|
31
31
|
|
32
|
+
def handle_work( worker, payload )
|
33
|
+
unless worker.enabled?
|
34
|
+
if worker.error_on_disabled?
|
35
|
+
Work.enqueue_error_payload( payload, error: "Worker disabled" )
|
36
|
+
end
|
37
|
+
worker_info( worker, "Worker disabled" )
|
38
|
+
return
|
39
|
+
end
|
40
|
+
|
41
|
+
worker.call
|
42
|
+
end
|
43
|
+
|
32
44
|
def handle_error( worker, e, channel, delivery_info, payload, metadata )
|
33
45
|
headers = metadata[:headers]
|
34
46
|
|
data/lib/rabbit_wq/version.rb
CHANGED
data/lib/rabbit_wq/worker.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rabbit-wq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- C. Jason Harrelson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|