summaryrefslogtreecommitdiff
path: root/lib/presque
diff options
context:
space:
mode:
Diffstat (limited to 'lib/presque')
-rw-r--r--lib/presque/worker/Role/Job.pm7
-rw-r--r--lib/presque/worker/Role/Logger.pm37
-rw-r--r--lib/presque/worker/Role/Management.pm17
3 files changed, 47 insertions, 14 deletions
diff --git a/lib/presque/worker/Role/Job.pm b/lib/presque/worker/Role/Job.pm
index 6ce317c..3681580 100644
--- a/lib/presque/worker/Role/Job.pm
+++ b/lib/presque/worker/Role/Job.pm
@@ -9,7 +9,12 @@ sub _job_failure {
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;
+ try {
+ $self->retry_job(queue_name => '', $job) if $retries > 0;
+ }
+ catch {
+ # XXX
+ };
$self->fail($job, $_) if $self->_has_fail_method;
}
diff --git a/lib/presque/worker/Role/Logger.pm b/lib/presque/worker/Role/Logger.pm
index 4285b55..c33ae51 100644
--- a/lib/presque/worker/Role/Logger.pm
+++ b/lib/presque/worker/Role/Logger.pm
@@ -9,18 +9,37 @@ has logger => (
isa => 'Object',
lazy => 1,
default => sub {
- my $self = shift;
- my $log = Log::Dispatch->new();
- $log->add(
- Log::Dispatch::Screen->new(
- name => 'screen',
- min_level => 'debug',
- newline => 1,
- )
- );
+ my $self = shift;
+ my $context = $self->context;
+ my $logger = Log::Dispatch->new();
+ if (my $log_conf = $context->{logger}) {
+ foreach my $log_type (keys %{$log_conf}) {
+ my $log_engine = $self->_load_log_engine($log_type);
+ my $_logger =
+ $log_engine->new(%{$self->context->{log}->{$log_type}});
+ $logger->add($_logger);
+ }
+ }
+ else {
+ $log->add(
+ Log::Dispatch::Screen->new(
+ name => 'screen',
+ min_level => 'debug',
+ newline => 1,
+ )
+ );
+ }
+ $log;
}
);
+sub _load_log_engine {
+ my ($self, $engine) = @_;
+ my $log_engine = "Log::Dispatch::" . ucfirst($engine);
+ Class::MOP::load_class($log_engine);
+ $log_engine;
+}
+
before start => sub {
my $self = shift;
diff --git a/lib/presque/worker/Role/Management.pm b/lib/presque/worker/Role/Management.pm
index cceea4e..c2a13fd 100644
--- a/lib/presque/worker/Role/Management.pm
+++ b/lib/presque/worker/Role/Management.pm
@@ -6,7 +6,7 @@ has shut_down => (is => 'rw', isa => 'Bool', default => 0,);
before start => sub {
my $self = shift;
- $self->rest_register_worker;
+ $self->register_worker(worker_id => $self->worker_id);
$SIG{INT} = sub { $self->_shutdown };
$SIG{TERM} = sub { $self->_shutdown };
$SIG{QUIT} = sub { $self->_graceful_shutdown };
@@ -14,9 +14,18 @@ before start => sub {
$SIG{CHLD} = 'IGNORE';
};
-after start => sub { (shift)->rest_unregister_worker; };
-after _graceful_shutdown => sub { (shift)->rest_unregister_worker; };
-after _shutdown => sub { (shift)->rest_unregister_worker; };
+after start => sub {
+ my $self = shift;
+ $self->unregister_worker(worker_id => $self->worker_id);
+};
+after _graceful_shutdown => sub {
+ my $self = shift;
+ $self->unregister_worker(worker_id => $self->worker_id);
+};
+after _shutdown => sub {
+ my $self = shift;
+ $self->unregister_worker(worker_id => $self->worker_id);
+};
sub _shutdown {
my $self = shift;