about summary refs log tree commit diff
diff options
context:
space:
mode:
authorfranck cuny <franck@lumberjaph.net>2010-04-14 10:37:53 +0200
committerfranck cuny <franck@lumberjaph.net>2010-04-14 10:37:53 +0200
commit2e3189a740fb88cf83f8ab92a947fc83f2ec0f24 (patch)
tree4ae064683dbce4350f2e3d9e0835ce89d325b9a8
parentadd templates and static dirs (diff)
downloadpresque-2e3189a740fb88cf83f8ab92a947fc83f2ec0f24.tar.gz
add POD
-rw-r--r--lib/presque.pm77
1 files changed, 65 insertions, 12 deletions
diff --git a/lib/presque.pm b/lib/presque.pm
index 5d168d6..f64800a 100644
--- a/lib/presque.pm
+++ b/lib/presque.pm
@@ -9,18 +9,25 @@ use AnyEvent::Redis;
 use presque::RestQueueHandler;
 use presque::JobQueueHandler;
 use presque::IndexHandler;
+use presque::StatusHandler;
 
 has config => (
-    is => 'rw', isa => 'HashRef', lazy => 1, default => sub {}
+    is      => 'rw',
+    isa     => 'HashRef',
+    lazy    => 1,
+    default => sub { }
 );
 
 has redis => (
-    is => 'rw',
-    isa => 'Object',
-    lazy => 1,
+    is      => 'rw',
+    isa     => 'Object',
+    lazy    => 1,
     default => sub {
         my $self = shift;
-        my $r = AnyEvent::Redis->new();
+        my $r    = AnyEvent::Redis->new(
+            host => $self->config->{redis}->{host},
+            port => $self->config->{redis}->{port}
+        );
         $r;
     }
 );
@@ -29,9 +36,10 @@ sub app {
     my ( $class, %args ) = @_;
     my $self = $class->new(
         [
-            '/q/(.*)' => 'presque::RestQueueHandler',
-            '/j/(.*)' => 'presque::JobQueueHandler',
-            '/'   => 'presque::IndexHandler',
+            '/q/(.*)'     => 'presque::RestQueueHandler',
+            '/j/(.*)'     => 'presque::JobQueueHandler',
+            '/stats/(.*)' => 'presque::StatusHandler',
+            '/'           => 'presque::IndexHandler',
         ]
     );
     $self->config( delete $args{config} );
@@ -43,15 +51,56 @@ __END__
 
 =head1 NAME
 
-presque -
+presque - a redis based message queue
 
 =head1 SYNOPSIS
 
-  use presque;
-
 =head1 DESCRIPTION
 
-presque is
+presque is a message queue system based on Tatsumaki and Redis.
+
+It's functionality are inspired by L<RestMQ|http://github.com/gleicon/restmq>
+and the name by L<resque|http://github.com/defunkt/resque>.
+
+The following HTTP routes are available:
+
+=over 4
+
+=item
+
+    GET /q/queuename
+
+gets an object out of the queue
+
+=item
+
+    POST /q/queuename
+
+insert an object in the queue
+
+=item
+
+    DELETE /q/queuename
+
+purge and delete the queue
+
+=item
+
+    GET /stats/[queuename]
+
+return some statues about the queue. If no queue is given, return basic statues about
+all the queues.
+
+=back
+
+=head2 INSERT A JOB
+
+The B<Content-Type> of the request must be set to B<application/json>. The body of the request
+must be a valid JSON object.
+
+    curl -H 'Content-Type: application/json' -X POST "http://localhost:5002/q/foo" -d '{"key":"value"}'
+
+=head2 FETCH A JOB
 
 =head1 AUTHOR
 
@@ -61,6 +110,10 @@ franck cuny E<lt>franck@lumberjaph.netE<gt>
 
 =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.