From d18213e3c6956540e21d738b411b00e9eb71dc4e Mon Sep 17 00:00:00 2001 From: franck cuny Date: Tue, 13 Apr 2010 18:46:54 +0200 Subject: basic REST job queue using tatsumaki + redis --- lib/presque.pm | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) (limited to 'lib/presque.pm') diff --git a/lib/presque.pm b/lib/presque.pm index 2116589..5d168d6 100644 --- a/lib/presque.pm +++ b/lib/presque.pm @@ -1,8 +1,42 @@ package presque; -use strict; -use warnings; +use Moose; our $VERSION = '0.01'; +extends 'Tatsumaki::Application'; + +use AnyEvent::Redis; + +use presque::RestQueueHandler; +use presque::JobQueueHandler; +use presque::IndexHandler; + +has config => ( + is => 'rw', isa => 'HashRef', lazy => 1, default => sub {} +); + +has redis => ( + is => 'rw', + isa => 'Object', + lazy => 1, + default => sub { + my $self = shift; + my $r = AnyEvent::Redis->new(); + $r; + } +); + +sub app { + my ( $class, %args ) = @_; + my $self = $class->new( + [ + '/q/(.*)' => 'presque::RestQueueHandler', + '/j/(.*)' => 'presque::JobQueueHandler', + '/' => 'presque::IndexHandler', + ] + ); + $self->config( delete $args{config} ); + $self; +} 1; __END__ -- cgit v1.2.3