Skip to content

nacmartin/edisque

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published