summaryrefslogtreecommitdiff
path: root/lib/presque.pm
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 /lib/presque.pm
parentadd templates and static dirs (diff)
downloadpresque-2e3189a740fb88cf83f8ab92a947fc83f2ec0f24.tar.gz
add POD
Diffstat (limited to 'lib/presque.pm')
-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.