we can do the work associated with it!
$job->process();
The job data must be serializable to JSON, and it is recommended that you use a hash for it. See below for a list of the supported job opti
package Qless::Config;
=head1 NAME
Qless::Config
=cut
use strict; use warnings;
use JSON::XS qw(decode_json);
sub new {
my $class = shift;
my ($client) = @_;
$class = ref $class if ref $class;
$key) = @_;
if ($key) {
return $self->{'client'}->_config([], 'get', $key);
}
return decode_json($self->{'client'}->_config([], 'get'));
}
sub set {
my ($self, $key, $value) = @_;
return $sel
ackage Qless::Queue;
=head1 NAME
Qless:Queue
=cut
use strict; use warnings;
use JSON::XS qw(decode_json encode_json);
use Qless::Jobs;
use Qless::Job;
use Time::HiRes qw();
=head1 METHODS
=head2
e'}, $self->{'client'});
}
=head2 C<counts>
=cut
sub counts {
my ($self) = @_;
return decode_json($self->{'client'}->_queues([], Time::HiRes::time, $self->{'name'}));
}
=head2 C<heartbeat>
=cut
_json($data),
Time::HiRes::time,
$args{'delay'} || 0,
'priority', $args{'priority'} || 0,
'tags', encode_json($args{'tags'} || []),
'retries', $args{'retries'} || 5,
'depends', encode_json
less::RecurringJob
=cut
use strict; use warnings;
use base 'Qless::BaseJob';
use JSON::XS qw(decode_json encode_json);
sub new {
my $class = shift;
my ($client, $args) = @_;
$class = ref $clas
', $_[1]) }
sub data { $#_ == 0 ? $_[0]->SUPER::data : $_[0]->_set_key('data', encode_json($_[1])) }
sub klass { $#_ == 0 ? $_[0]->SUPER::klass : $_[0]->_set_key('klass', $_[1]) }
ueues;
=head1 NAME
Qless::Queues
=cut
use strict; use warnings;
use Qless::Queue;
use JSON::XS qw(decode_json);
use Time::HiRes qw();
use Qless::Utils qw(fix_empty_array);
sub new {
my $class = s
;
$self->{'client'} = $client;
$self;
}
sub counts {
my ($self) = @_;
my $results = decode_json($self->{'client'}->_queues([], Time::HiRes::time));
$results = fix_empty_array($results);
retur
package Qless::Client;
=head1 NAME
Qless::Client
=cut
use strict; use warnings;
use JSON::XS qw(decode_json);
use Sys::Hostname qw(hostname);
use Time::HiRes qw();
use Qless::Lua;
use Qless::Config
t
sub tags {
my ($self, $offset, $count) = @_;
$offset ||= 0;
$count ||= 100;
return decode_json($self->_tag([], 'top', $offset, $count));
}
=head2 C<event - TBD>
Listen for a single event
=cu
package Qless::Workers;
=head1 NAME
Qless::Workers
=cut
use strict; use warnings;
use JSON::XS qw(decode_json);
use Time::HiRes qw();
use Qless::Utils qw(fix_empty_array);
sub new {
my $class = s
lts = decode_json($self->{'client'}->_workers([], Time::HiRes::time));
$results = fix_empty_array($results);
return $results;
}
sub item {
my ($self, $name) = @_;
my $rv = decode_json($self->{'cl
arnings;
use base 'Exporter';
our @EXPORT_OK = qw(fix_empty_array);
# Because of how Lua parses JSON, empty arrays comes through as {}
sub fix_empty_array {
my $val = shift;
if (!$val) {
return
use warnings;
use base 'Qless::BaseJob';
use Qless::Utils qw(fix_empty_array);
use JSON::XS qw(decode_json encode_json);
use Class::Load qw(try_load_class);
use Time::HiRes qw();
sub new {
my $class
ient'}->_put([$queue],
$self->jid,
$self->klass,
encode_json($self->data),
Time::HiRes::time,
$delay||0,
'depends', encode_json($depends||[])
);
}
sub complete {
my ($self, $next, $dela
>worker_name, $self->queue_name,
Time::HiRes::time, encode_json($self->data), 'next', $next, 'delay', $delay||0, 'depends', encode_json($depends||[])
);
}
else {
return $self->client->_comple
s::ClientJobs;
=head1 NAME
Qless::ClientJobs
=cut
use strict; use warnings;
use JSON::XS qw(decode_json encode_json);
use Qless::Job;
use Qless::RecurringJob;
use Qless::Utils qw(fix_empty_array);
of job objects that are being tracked
=cut
sub tracked {
my ($self) = @_;
my $results = decode_json($self->{'client'}->_track());
$results->{'jobs'} = fix_empty_array($results->{'jobs'});
$result
agged with a tag
=cut
sub tagged {
my ($self, $tag, $offset, $count) = @_;
my $results = decode_json($self->{'client'}->_tag([], 'get', $tag, $offset||0, $count||25));
$results->{'jobs'} = fix_empt