about summary refs log tree commit diff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/presque/WorkerHandler.pm36
1 files changed, 33 insertions, 3 deletions
diff --git a/lib/presque/WorkerHandler.pm b/lib/presque/WorkerHandler.pm
index d89bf4c..0bade5b 100644
--- a/lib/presque/WorkerHandler.pm
+++ b/lib/presque/WorkerHandler.pm
@@ -3,7 +3,7 @@ package presque::WorkerHandler;
 use JSON;
 use Moose;
 extends 'Tatsumaki::Handler';
-with('presque::Role::Error',
+with('presque::Role::Error', 'presque::Role::Response',
     'presque::Role::RequireQueue' => {methods => [qw/delete post/]});
 
 __PACKAGE__->asynchronous(1);
@@ -36,6 +36,8 @@ sub post {
 
     $self->application->redis->sadd("workers",                $worker_id);
     $self->application->redis->sadd("workers:" . $queue_name, $worker_id);
+    $self->application->redis->set("processed:" . $worker_id, 0);
+    $self->application->redis->set("failed:" . $worker_id,    0);
     $self->application->redis->set("workers:" . $worker_id,
         JSON::encode_json({started_at => time, worker_id => $worker_id}));
     $self->response->code(201);
@@ -70,14 +72,14 @@ sub _get_stats_for_worker {
             my $desc = JSON::decode_json(shift @$res);
             $desc->{processed} = shift @$res;
             $desc->{failed}    = shift @$res;
-            $self->finish(JSON::encode_json($desc));
+            $self->entity($desc);
         }
     );
 }
 
 sub _get_stats_for_queue {
     my ($self, $queue_name) = @_;
-    $self->_get_smembers('workers:'.$queue_name);
+    $self->_get_smembers('workers:' . $queue_name);
 }
 
 sub _get_stats_for_workers {
@@ -97,3 +99,31 @@ sub _get_smembers {
 }
 
 1;
+=head1 NAME
+
+presque::WorkerHandler
+
+=head1 DESCRIPTION
+
+=head2 GET
+
+=head2 DELETE
+
+=head2 POST
+
+=head1 AUTHOR
+
+franck cuny E<lt>franck@lumberjaph.netE<gt>
+
+=head1 SEE ALSO
+
+=head1 LICENSE
+
+Copyright 2010 by Linkfluence
+
+L<http://linkfluence.net>
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut