diff options
| author | franck cuny <franck@lumberjaph.net> | 2010-06-09 18:19:38 +0200 |
|---|---|---|
| committer | franck cuny <franck@lumberjaph.net> | 2010-06-09 18:19:38 +0200 |
| commit | 5b2042053577cc6381c40c4fb5d5264e79a0312d (patch) | |
| tree | 643da7415c478ee5e444231690fe8cd91329b75c /lib/presque/worker.pm | |
| parent | a simple worker; a role for the REST interface to presque; reg signals (diff) | |
| download | presque-worker-5b2042053577cc6381c40c4fb5d5264e79a0312d.tar.gz | |
add logger; move some code for work and job in roles;
Diffstat (limited to 'lib/presque/worker.pm')
| -rw-r--r-- | lib/presque/worker.pm | 50 |
1 files changed, 2 insertions, 48 deletions
diff --git a/lib/presque/worker.pm b/lib/presque/worker.pm index ad8ebf0..264833c 100644 --- a/lib/presque/worker.pm +++ b/lib/presque/worker.pm @@ -11,12 +11,11 @@ requires 'work'; with qw/ presque::worker::Role::Management - presque::worker::Role::Fork + presque::worker::Role::Dispatcher presque::worker::Role::RESTClient presque::worker::Role::Logger/; has queue_name => (is => 'ro', isa => 'Str', required => 1); -has retries => (is => 'rw', isa => 'Int', default => 5); has interval => (is => 'ro', isa => 'Int', lazy => 1, default => 1); has _fail_method => ( is => 'rw', @@ -36,47 +35,11 @@ has worker_id => ( } ); -before start => sub { +after new => sub { my $self = shift; - if ($self->meta->find_method_by_name('fail')) { $self->fail_method(1); } - - $self->logger->log( - level => 'info', - message => "presque worker [" - . $self->worker_id - . "] : start to listen for " - . $self->queue_name - ); -}; - -around work => sub { - my ($orig, $self, $job) = @_; - $self->logger->log( - level => 'debug', - message => $self->worker_id . " start to work" - ); - - try { - if ($self->fork_dispatcher) { - my $fork = fork(); - if ($fork == 0) { - $self->$orig($job); - }elsif($fork > 0){ - return; - }else{ - } - } - }catch{ - my $err = $_; - $self->logger->log( - level => 'error', - message => 'Job failed: ' . $err, - ); - $self->_job_failure($job, $err); - }; }; sub start { @@ -89,15 +52,6 @@ sub start { } } -sub _job_failure { - my ($self, $job, $err) = @_; - push @{$job->{fail}}, $err; - my $retries = ($job->{retries_left} || $self->retries) - 1; - $job->{retries_left} = $retries; - $self->rest_retry_job($job) if $retries > 0; - $self->fail($job, $_) if $self->_has_fail_method; -} - 1; __END__ |
