summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lib/presque/ControlHandler.pm48
-rw-r--r--lib/presque/JobQueueHandler.pm11
-rw-r--r--lib/presque/WorkerHandler.pm2
3 files changed, 33 insertions, 28 deletions
diff --git a/lib/presque/ControlHandler.pm b/lib/presque/ControlHandler.pm
index 245ca26..e638798 100644
--- a/lib/presque/ControlHandler.pm
+++ b/lib/presque/ControlHandler.pm
@@ -3,23 +3,26 @@ package presque::ControlHandler;
use JSON;
use Moose;
extends 'Tatsumaki::Handler';
-with
- qw/presque::Role::QueueName presque::Role::Error presque::Role::Response/;
+
+with (
+ 'presque::Role::QueueName',
+ 'presque::Role::Error',
+ 'presque::Role::Response',
+ 'presque::Role::RequireQueue' => {methods => [qw/get post/]},
+);
__PACKAGE__->asynchronous(1);
sub get {
- my ( $self, $queue_name ) = @_;
-
- return $self->http_error_queue if !$queue_name;
+ my ($self, $queue_name) = @_;
$self->application->redis->get(
$self->_queue_stat($queue_name),
sub {
my $status = shift;
$self->finish(
- JSON::encode_json( {
- queue => $queue_name,
+ JSON::encode_json(
+ { queue => $queue_name,
status => $status
}
)
@@ -31,13 +34,15 @@ sub get {
sub post {
my ( $self, $queue_name ) = @_;
- return $self->http_error_queue if !$queue_name;
+ my $content = $self->request->content;
- my $content = JSON::decode_json( $self->request->content );
- if ( $content->{status} eq 'start' ) {
+ return $self->http_error('content is missing') if !$content;
+
+ my $json = JSON::decode_json( $content );
+ if ( $json->{status} eq 'start' ) {
$self->_set_status( $queue_name, 1 );
}
- elsif ( $content->{status} eq 'stop' ) {
+ elsif ( $json->{status} eq 'stop' ) {
$self->_set_status( $queue_name, 0 );
}
else {
@@ -46,22 +51,17 @@ sub post {
}
sub _set_status {
- my ( $self, $queue_name, $status ) = @_;
+ my ($self, $queue_name, $status) = @_;
my $key = $self->_queue_stat($queue_name);
- $self->application->redis->set(
- $key, 0,
- sub {
- my $res = shift;
- $self->finish(
- JSON::encode_json( {
- queue => $queue_name,
- response => $res
- }
- )
- );
- }
+ $self->application->redis->set($key, $status);
+ $self->finish(
+ JSON::encode_json(
+ { queue => $queue_name,
+ response => 'updated',
+ }
+ )
);
}
diff --git a/lib/presque/JobQueueHandler.pm b/lib/presque/JobQueueHandler.pm
index 217388f..7890b11 100644
--- a/lib/presque/JobQueueHandler.pm
+++ b/lib/presque/JobQueueHandler.pm
@@ -2,16 +2,19 @@ package presque::JobQueueHandler;
use Moose;
extends 'Tatsumaki::Handler';
-with
- qw/presque::Role::QueueName presque::Role::Error presque::Role::Response/;
+
+with (
+ 'presque::Role::QueueName',
+ 'presque::Role::Error',
+ 'presque::Role::Response',
+ 'presque::Role::RequireQueue' => {methods => [qw/get/]},
+);
__PACKAGE__->asynchronous(1);
sub get {
my ( $self, $queue_name ) = @_;
- $self->http_error_queue if (!$queue_name);
-
my $key = $self->_queue($queue_name);
$self->application->redis->lrange(
diff --git a/lib/presque/WorkerHandler.pm b/lib/presque/WorkerHandler.pm
index 51a832b..c0b4ad1 100644
--- a/lib/presque/WorkerHandler.pm
+++ b/lib/presque/WorkerHandler.pm
@@ -11,7 +11,9 @@ sub get {
my ($self, $queue_name) = @_;
if ($queue_name) {
+
}else{
+
}
$self->finish();