about summary refs log tree commit diff
diff options
context:
space:
mode:
authorfranck cuny <franck@lumberjaph.net>2010-05-13 16:13:15 +0200
committerfranck cuny <franck@lumberjaph.net>2010-05-13 16:13:15 +0200
commit41874a20c7479a081a600847fd166fef20bb030a (patch)
tree73f158d60236970b91fdbbf9b31d6b09aa2b7786
parentmore cleaning, add stat on processed jobs (diff)
downloadpresque-41874a20c7479a081a600847fd166fef20bb030a.tar.gz
handler to reg/unreg workers
-rw-r--r--lib/presque/WorkerHandler.pm51
1 files changed, 51 insertions, 0 deletions
diff --git a/lib/presque/WorkerHandler.pm b/lib/presque/WorkerHandler.pm
new file mode 100644
index 0000000..51a832b
--- /dev/null
+++ b/lib/presque/WorkerHandler.pm
@@ -0,0 +1,51 @@
+package presque::WorkerHandler;
+
+use JSON;
+use Moose;
+extends 'Tatsumaki::Handler';
+with qw/presque::Role::Error/;
+
+__PACKAGE__->asynchronous(1);
+
+sub get {
+    my ($self, $queue_name) = @_;
+
+    if ($queue_name) {
+    }else{
+    }
+
+    $self->finish();
+}
+
+sub post {
+    my ($self, $queue_name) = @_;
+
+    return $self->http_error_queue if !$queue_name;
+
+    my $content   = JSON::decode_json($self->request->content);
+    my $worker_id = $content->{worker_id};
+
+    $self->application->redis->sadd("workers",                $worker_id);
+    $self->application->redis->sadd("workers:" . $queue_name, $worker_id);
+    $self->finish();
+}
+
+sub delete {
+    my ($self, $queue_name) = @_;
+
+    return $self->http_error_queue if !$queue_name;
+
+    my $input     = $self->request->parameters;
+    my $worker_id = $input->{worker_id};
+
+    return $self->http_error('worker_id is missing') unless $worker_id;
+
+    $self->application->redis->srem("worker",                 $worker_id);
+    $self->application->redis->srem("workers:" . $queue_name, $worker_id);
+    $self->application->redis->clear("processed:" . $worker_id);
+    $self->application->redis->clear("failed:" . $worker_id);
+    $self->application->redis->delete("workers:" . $worker_id . ":started");
+    $self->finish();
+}
+
+1;