diff options
| author | franck cuny <franck@lumberjaph.net> | 2010-05-13 16:13:15 +0200 |
|---|---|---|
| committer | franck cuny <franck@lumberjaph.net> | 2010-05-13 16:13:15 +0200 |
| commit | 41874a20c7479a081a600847fd166fef20bb030a (patch) | |
| tree | 73f158d60236970b91fdbbf9b31d6b09aa2b7786 /lib | |
| parent | more cleaning, add stat on processed jobs (diff) | |
| download | presque-41874a20c7479a081a600847fd166fef20bb030a.tar.gz | |
handler to reg/unreg workers
Diffstat (limited to '')
| -rw-r--r-- | lib/presque/WorkerHandler.pm | 51 |
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; |
