summary refs log tree commit diff
path: root/lib/presque/worker/Role/Job.pm
diff options
context:
space:
mode:
authorfranck cuny <franck@lumberjaph.net>2010-06-09 18:19:38 +0200
committerfranck cuny <franck@lumberjaph.net>2010-06-09 18:19:38 +0200
commit5b2042053577cc6381c40c4fb5d5264e79a0312d (patch)
tree643da7415c478ee5e444231690fe8cd91329b75c /lib/presque/worker/Role/Job.pm
parenta simple worker; a role for the REST interface to presque; reg signals (diff)
downloadpresque-worker-5b2042053577cc6381c40c4fb5d5264e79a0312d.tar.gz
add logger; move some code for work and job in roles;
Diffstat (limited to 'lib/presque/worker/Role/Job.pm')
-rw-r--r--lib/presque/worker/Role/Job.pm16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/presque/worker/Role/Job.pm b/lib/presque/worker/Role/Job.pm
new file mode 100644
index 0000000..6ce317c
--- /dev/null
+++ b/lib/presque/worker/Role/Job.pm
@@ -0,0 +1,16 @@
+package presque::worker::Role::Job;
+
+use Moose::Role;
+has job_retries    => (is => 'rw', isa => 'Int', default  => 5);
+
+sub _job_failure {
+    my ($self, $job, $err) = @_;
+
+    push @{$job->{fail}}, $err;
+    my $retries = ($job->{retries_left} || $self->job_retries) - 1;
+    $job->{retries_left} = $retries;
+    $self->rest_retry_job($job) if $retries > 0;
+    $self->fail($job, $_) if $self->_has_fail_method;
+}
+
+1;