Perl client for Disque, an in-memory, distributed job queue
For those who want to see the things working right now.
Open new terminal and do:
$ perl examples/producer.pl
Open another terminal and do:
$ perl examples/consumer.pl
You will start sawing the new jobs comming at 'consumer' terminal. Also you can setup multiple instances of disque cluster and shutdown some of them and you will see how the clients will automatic reconnect to any available disque server.
Connection:
perl-disque will try to connect to any available server in the order is have been set, if there is any disque instance available, the client will generate a connection error and will abort.
if you not spicify any server in conection new()
by default will only connect to '127.0.0.1:7711'.
use Disque;
my $disque = Disque->new();
To send new job just do
$disque->add_job('test','job_1', 0);
You can use this library with single or multi-node clusters.
When you invoke "new()" you can choose in which method you will connect to the cluster, of course, this only will happen if ther is more than 1 node spicified.
By default, as Salvatore specified in the doc, the lib will try to connect to any available server in a randomly way.
But also if you won't to connect to the server randomly you can specify the param "disable_random_connect => 1" in new() sub, for example:
my $disque = Disque->new(
servers => ['localhost:7711', 'localhost:7712', 'localhost:7713'],
disable_random_connect => 1
);
So you will connect into the cluster in the order that you have set the nodes.
You can set global environment variable: $ export DISQUE_DEBUG=1
Or you can specify debug at connection:
my $disque = Disque->new(debug => 1);
The commands that are allready available are:
add_job
get_job
ack_job
fast_ack
qlen
qpeek
enqueue
dequeue
del_job
show
jscan
qstat
qscan
$ cpan install Disque
- Create tests
- Add more documentation in pm module
See LICENSE.
- Big thanks to Salvatore Sanfilippo aka antirez for share his work.
- The people who contributed and did perl-redis module.