Beanstalk::Job - Class to represent a job from a beanstalkd server


Beanstalk-Client documentation Contained in the Beanstalk-Client distribution.

Index


Code Index:

NAME

Top

Beanstalk::Job - Class to represent a job from a beanstalkd server

SYNOPSIS

Top

DESCRIPTION

Top

METHODS

Top

id

Returns job id

client

Returns Beanstalk::Client object for the server the job resides on

buried

Returns true if the job is buried

reserved

Returns true if the job was created via a reserve command and has not been deleted, buried or released

data

Returns the raw data for the beanstalkd server for the job

error

Returns the last error

stats

Return a Stats object for this job. See Beanstalk::Client for a list of methods available.

delete

Tell the server to delete this job

touch

Calling touch on a reserved job will reset the time left for the job to complete back to the original ttr value.

peek

Peek this job on the server.

release

Release the job.

bury

Tell the server to bury the job

args

Decode and return the raw data from the beanstalkd server

tube

Return the name of the tube the job is in

ttr

Returns the jobs time to run, in seconds.

priority

Return the jobs priority

SEE ALSO

Top

Beanstalk::Pool, Beanstalk::Client, Beanstalk::Stats

AUTHOR

Top

Graham Barr <gbarr@pobox.com>

COPYRIGHT

Top


Beanstalk-Client documentation Contained in the Beanstalk-Client distribution.

package Beanstalk::Job;

use strict;
use warnings;

use base qw(Class::Accessor::Fast);

our $VERSION = "1.06";

__PACKAGE__->mk_accessors(
  qw(id client buried reserved data error)
);

sub stats {
  my $self = shift;
  $self->{_stats} = $self->client->stats_job($self->id)
    or $self->error($self->client->error);
  $self->{_stats};
}

sub delete {
  my $self = shift;

  my $ret = $self->client->delete($self->id)
    or $self->error($self->client->error);

  $self->reserved(0);
  $self->buried(0);

  $ret;
}

sub touch {
  my $self = shift;

  my $ret = $self->client->touch($self->id)
    or $self->error($self->client->error);

  $ret;
}

sub peek {
  my $self = shift;

  my $ret = $self->client->peek($self->id)
    or $self->error($self->client->error);

  $ret;
}

sub release {
  my $self = shift;
  my $opt  = shift;

  my $ret = $self->client->release($self->id, $opt)
    or $self->error($self->client->error);

  $self->reserved(0);

  $ret;
}

sub bury {
  my $self = shift;
  my $opt  = shift;

  unless ($self->client->bury($self->id, $opt)) {
    $self->error($self->client->error);
    return undef;
  }

  $self->reserved(0);
  $self->buried(1);

  return 1;
}

sub args {
  my $self = shift;
  my $data = $self->data;

  return unless defined($data);
  $self->client->decoder->($data);
}

sub tube {
  my $self  = shift;

  my $stats = $self->{_stats} || $self->stats
    or return undef;

  $stats->tube;
}

sub ttr {
  my $self  = shift;

  my $stats = $self->{_stats} || $self->stats
    or return undef;

  $stats->ttr;
}

sub priority {
  my $self  = shift;

  my $stats = $self->{_stats} || $self->stats
    or return undef;

  $stats->pri;
}

1;

__END__