Sha256: 95e147ba0307517a86d7cf20f9e27157372615c5d287f299d065aef03b3fbd62
Contents?: true
Size: 1.97 KB
Versions: 2
Compression:
Stored size: 1.97 KB
Contents
disque-rb ========= Client for Disque, an in-memory, distributed job queue. Usage ----- Create a new Disque client by passing a list of nodes: ```ruby client = Disque.new(["127.0.0.1:7711", "127.0.0.1:7712", "127.0.0.1:7713"]) ``` Alternatively, you can pass a single string with comma-separated nodes: ```ruby client = Disque.new("127.0.0.1:7711,127.0.0.1:7712,127.0.0.1:7713") ``` Using a single string is useful if you are receiving the list of nodes from an environment variable. If the nodes are password protected, you can pass the `AUTH` string: ```ruby client = Disque.new("127.0.0.1:7711", auth: "e727d1464a...") ``` The client keeps track of which nodes are providing more jobs, and after a given number operations it tries to connect to the preferred node. The number of operations for each cycle defaults to 1000, but it can be configured: ```ruby client = Disque.new("127.0.0.1:7711", cycle: 20000) ``` Now you can add jobs: ```ruby client.push("foo", "bar", 100) ``` It will push the job `"bar"` to the queue `"foo"` with a timeout of 100 ms, and return the id of the job if it was received and replicated in time. Disque's `ADDJOB` signature is as follows: ``` ADDJOB queue_name job <ms-timeout> [REPLICATE <count>] [DELAY <sec>] [RETRY <sec>] [TTL <sec>] [MAXLEN <count>] [ASYNC] ``` You can pass any optional arguments as a hash, for example: ```ruby disque.push("foo", "myjob", 1000, ttl: 1, async: true) ``` Note that `async` is a special case because it's just a flag. That's why `true` must be passed as its value. Then, your workers will do something like this: ```ruby loop do client.fetch(from: ["foo"]) do |job| # Do something with `job` end end ``` The `fetch` command receives an array of queues, and optionally a `timeout` (in milliseconds) and the `count` of jobs to retrieve: ```ruby client.fetch(from: ["bar", "baz"], count: 10, timeout: 2000) ``` Installation ------------ You can install it using rubygems. ``` $ gem install disque ```
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
disque-0.0.6 | README.md |
disque-0.0.5 | README.md |