/usr/local/CPAN/TheSchwartz-Simple/TheSchwartz/Simple/Job.pm
package TheSchwartz::Simple::Job;
use strict;
sub new_from_array {
my($class, $funcname, $arg) = @_;
$class->new(
funcname => $funcname,
arg => $arg,
);
}
sub new {
my $class = shift;
my %param = ref $_[0] ? %{$_[0]} : @_;
my $self = bless \%param, $class;
$self->run_after( time ) unless defined $self->run_after;
$self->grabbed_until( 0) unless defined $self->grabbed_until;
$self;
}
sub _accessor {
my $self = shift;
my $col = shift;
$self->{$col} = shift if @_;
$self->{$col};
}
sub as_hashref {
my $self = shift;
my %data;
for my $col (qw( jobid funcid arg uniqkey insert_time run_after grabbed_until priority coalesce )) {
$data{$col} = $self->{$col}
if exists $self->{$col};
}
\%data;
}
sub jobid { shift->_accessor('jobid', @_) }
sub funcid { shift->_accessor('funcid', @_) }
sub arg { shift->_accessor('arg', @_) }
sub uniqkey { shift->_accessor('uniqkey', @_) }
sub insert_time { shift->_accessor('insert_time', @_) }
sub run_after { shift->_accessor('run_after', @_) }
sub grabbed_until { shift->_accessor('grabbed_until', @_) }
sub priority { shift->_accessor('priority', @_) }
sub coalesce { shift->_accessor('coalesce', @_) }
sub funcname { shift->_accessor('funcname', @_) }
1;