disc 0.0.28 → 0.1.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 +46 -15
- data/lib/disc/version.rb +1 -1
- 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: 7e4f52b8bcd6d2c7b0648a5943c23f41c2fc71b0
|
4
|
+
data.tar.gz: 45fded657cbdd9122369e9cee62a0f451fb65309
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 29e37f6f7c7b706345a66699beca6513f3adb1351b61d4a6d99513a207f0798af25a59542514f1728e56254c772e0df5cbfda5cab24a10efe8071abf75b8ec79
|
7
|
+
data.tar.gz: d8917b863ef3073e27ed2804174e8719d71d1021adc5c45eca79873a13988eadf9293b2f668936da140f311a204f8a94c57d216bb2a1f69d9ec2089694cfb94a
|
data/README.md
CHANGED
@@ -61,6 +61,20 @@ Disc fills the gap between your Ruby service objects and [antirez](http://antire
|
|
61
61
|
)
|
62
62
|
```
|
63
63
|
|
64
|
+
## Disc Configuration
|
65
|
+
|
66
|
+
Disc takes its configuration from environment variables.
|
67
|
+
|
68
|
+
| ENV Variable | Default Value | Description
|
69
|
+
|:------------------:|:-----------------|:------------|
|
70
|
+
| `QUEUES` | 'default' | The list of queues that `Disc::Worker` will listen to, it can be a single queue name or a list of comma-separated queues |
|
71
|
+
| `DISC_CONCURRENCY` | '25' | Amount of threads to spawn when Celluloid is available. |
|
72
|
+
| `DISQUE_NODES` | 'localhost:7711' | This is the list of Disque servers to connect to, it can be a single node or a list of comma-separated nodes |
|
73
|
+
| `DISQUE_AUTH` | '' | Authorization credentials for Disque. |
|
74
|
+
| `DISQUE_TIMEOUT` | '100' | Time in milliseconds that the client will wait for the Disque server to acknowledge and replicate a job |
|
75
|
+
| `DISQUE_CYCLE` | '1000' | The client keeps track of which nodes are providing more jobs, after the amount of operations specified in cycle it tries to connect to the preferred node. |
|
76
|
+
|
77
|
+
|
64
78
|
## Disc Jobs
|
65
79
|
|
66
80
|
`Disc::Job` is a module you can include in your Ruby classes, this allows a Disc worker process to execute the code in them by adding a class method (`#enqueue`) with the following signature:
|
@@ -146,6 +160,38 @@ end
|
|
146
160
|
ComplexJob.enqueue(['first argument', { second: 'argument' }])
|
147
161
|
```
|
148
162
|
|
163
|
+
### Job Status
|
164
|
+
|
165
|
+
After a job is enqueued, you can check it's current status like so:
|
166
|
+
|
167
|
+
```ruby
|
168
|
+
Echoer.enqueue('test')
|
169
|
+
#=> "DIa18101491133639148a574eb30cd2e12f25dcf8805a0SQ"
|
170
|
+
|
171
|
+
Disc["DIa18101491133639148a574eb30cd2e12f25dcf8805a0SQ"]
|
172
|
+
#=> {
|
173
|
+
"arguments"=>["test"],
|
174
|
+
"class"=>"Echoer",
|
175
|
+
"id"=>"DIa18101491133639148a574eb30cd2e12f25dcf8805a0SQ",
|
176
|
+
"queue"=>"test",
|
177
|
+
"state"=>"queued",
|
178
|
+
"repl"=>1,
|
179
|
+
"ttl"=>86391,
|
180
|
+
"ctime"=>1462488116652000000,
|
181
|
+
"delay"=>0,
|
182
|
+
"retry"=>8640,
|
183
|
+
"nacks"=>0,
|
184
|
+
"additional-deliveries"=>0,
|
185
|
+
"nodes-delivered"=>["a18101496d562e412a459c6b114561efe95c57cc"],
|
186
|
+
"nodes-confirmed"=>[],
|
187
|
+
"next-requeue-within"=>8630995,
|
188
|
+
"next-awake-within"=>8630495,
|
189
|
+
"body"=>"{\"class\":\"Echoer\",\"arguments\":[\"test\"]}"
|
190
|
+
}
|
191
|
+
```
|
192
|
+
|
193
|
+
This information might vary, as it's retreived from Disque via the [`SHOW`](https://github.com/antirez/disque#show-job-id) command, only `arguments` and `class` are filled in by Disc, which are added by using `Disc.deserialize` on the `body` value.
|
194
|
+
|
149
195
|
### Job Serialization
|
150
196
|
|
151
197
|
Job information (their arguments, and class) need to be serialized in order to be stored
|
@@ -158,19 +204,6 @@ By default, these methods use by default the Ruby standard library json implemen
|
|
158
204
|
2. You can override `Disc.serialize` and `Disc.deserialize` to use a different JSON implementation, or MessagePack, or whatever else you wish.
|
159
205
|
|
160
206
|
|
161
|
-
## Settings
|
162
|
-
|
163
|
-
Disc takes its configuration from environment variables.
|
164
|
-
|
165
|
-
| ENV Variable | Default Value | Description
|
166
|
-
|:------------------:|:-----------------|:------------|
|
167
|
-
| `QUEUES` | 'default' | The list of queues that `Disc::Worker` will listen to, it can be a single queue name or a list of comma-separated queues |
|
168
|
-
| `DISC_CONCURRENCY` | '25' | Amount of threads to spawn when Celluloid is available. |
|
169
|
-
| `DISQUE_NODES` | 'localhost:7711' | This is the list of Disque servers to connect to, it can be a single node or a list of comma-separated nodes |
|
170
|
-
| `DISQUE_AUTH` | '' | Authorization credentials for Disque. |
|
171
|
-
| `DISQUE_TIMEOUT` | '100' | Time in milliseconds that the client will wait for the Disque server to acknowledge and replicate a job |
|
172
|
-
| `DISQUE_CYCLE` | '1000' | The client keeps track of which nodes are providing more jobs, after the amount of operations specified in cycle it tries to connect to the preferred node. |
|
173
|
-
|
174
207
|
## Error handling
|
175
208
|
|
176
209
|
When a job raises an exception, `Disc.on_error` is invoked with the error and
|
@@ -222,8 +255,6 @@ Disc.queues
|
|
222
255
|
|
223
256
|
Returner.enqueue('another test')
|
224
257
|
#=> => {"default"=>[{:arguments=>["test argument"], :class=>"Returner", :options=>{}}, {:arguments=>["another test"], :class=>"Returner", :options=>{}}]}
|
225
|
-
|
226
|
-
|
227
258
|
```
|
228
259
|
|
229
260
|
You can still flush the queues just as you would running on regular mode.
|
data/lib/disc/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: disc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- pote
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-05-
|
11
|
+
date: 2016-05-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: disque
|