Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 

edisque

Erlang Disque client. Disque is an in-memory, distributed job queue.

Example

Example:

git clone git://github.com/nacmartin/edisque.git
cd edisque
make
erl -pa ebin/ deps/**/ebin/
{ok, C} = edisque:start_link().
edisque:add_job(C, <<"queue">>, <<"body">>, 0).
{ok, Resp} = edisque:get_job(C, [<<"queue">>]).
JobId = lists:nth(2, lists:nth(1, Resp)).
edisque:ack_job(C, [JobId]).

Host cycling

Every time edisque runs GETJOB, edisque updates statistics of the Disque nodes that are producing the jobs that edisque is consuming. When a number of jobs is consumed (default is 1000), it will check the statistics to see if it can connect to a better node, and will do so if possible.

For more information about this behaviour, check the Disque documentation.

To configure the number of jobs consumed in a cycle, start edisque with edisque:start_link(Hosts, Cycle), where Hosts is a list of tuples of the form {IP, Port} as in {"127.0.0.1", 7711}, and Cycle is the number of jobs consumed before looking for a better client.

If Cycle is 0, this feature is disabled.

Running tests

To run the tests run make eunit.

In order to test cycling, it is expected to have two edisque nodes running in a cluster listening to 127.0.01:7711 and 127.0.0.1:7712.

Dependencies

Edisque uses eredis as base Redis client.

About

Disque client for Erlang

Resources

License

Releases

No releases published

Packages

No packages published