NAME
Sque - Background job processing based on Resque, using Stomp
VERSION
version 0.002
SYNOPSIS
First you create a Sesque instance where you configure the Stomp backend and then you can start sending jobs to be done by workers:
use Sque;
my $s = Sque->new( stomp => '127.0.0.1:61613' );
$s->push( my_queue => {
class => 'My::Task',
args => [ 'Hello world!' ]
});
Background jobs can be any perl module that implement a perform() function. The Sque::Job object is passed as the only argument to this function:
package My::Task;
use strict;
use 5.10.0;
sub perform {
my $job = shift;
say $job->args->[0];
}
1;
Finally, you run your jobs by instancing a Sque::Worker and telling it to listen to one or more queues:
use Sque;
my $w = Sque->new( stomp => '127.0.0.1:61613' )->worker;
$w->add_queue('my_queue');
$w->work;
DESCRIPTION
This is a copy of resque-perl by Diego Kuperman simplified a little bit (for better or worse) and made to work with any stomp server rather than Redis.
ATTRIBUTES
stomp
A Stomp Client on this sque instance.
namespace
Namespace for queues, default is 'sque'
worker
A Sque::Worker on this sque instance.
METHODS
push
Pushes a job onto a queue. Queue name should be a string and the item should be a Sque::Job object or a hashref containing: class - The String name of the job class to run. args - Any arrayref of arguments to pass the job.
Example:
$sque->push( archive => { class => 'Archive', args => [ 35, 'tar' ] } )
pop
Pops a job off a queue. Queue name should be a string. Returns a l<Sque::Job> object.
key
Concatenate $self-
namespace> with the received array of names to build a redis key name for this sque instance.
new_job
Build a Sque::Job object on this system for the given hashref(see Sque::Job) or string(payload for object).
ATTRIBUTES
HELPER METHODS
AUTHOR
William Wolf <throughnothing@gmail.com>
COPYRIGHT AND LICENSE
William Wolf has dedicated the work to the Commons by waiving all of his or her rights to the work worldwide under copyright law and all related or neighboring legal rights he or she had in the work, to the extent allowable by law.
Works under CC0 do not require attribution. When citing the work, you should not imply endorsement by the author.