| Swarmage documentation | Contained in the Swarmage distribution. |
Swarmage::Client - Blocking Client For Swarmage
use Swarmage::Client;
my $client = Swarmage::Client->new(
queue => {
module => "DBI::Generic",
config => {
connect_info => [ ... ]
}
}
);
my $response = $client->post_response(
Swarmage::Task->new(
type => $task_type,
data => ....,
);
);
| Swarmage documentation | Contained in the Swarmage distribution. |
# $Id: /mirror/perl/Swarmage/trunk/lib/Swarmage/Client.pm 38128 2008-01-07T04:52:02.712309Z daisuke $ # # Copyright (c) 2007-2008 Daisuke Maki <daisuke@endeworks.jp> # All rights reserved. package Swarmage::Client; use strict; use warnings; use base qw(Class::Accessor::Fast); use Swarmage::Task; use Swarmage::Util; use Sys::Hostname(); __PACKAGE__->mk_accessors($_) for qw(queue); sub new { my $class = shift; my %args = @_; my $queue_config = $args{queue}; my $queue_pkg = Swarmage::Util::load_module( $queue_config->{module} || 'DBI::Generic', 'Swarmage::Queue' ); my $queue = $queue_pkg->new( %{ $queue_config->{config} || {} }, ); return bless { queue => $queue, }, $class; } sub post_respond { my ($self, $task) = @_; my $postback = join('-', 'postback', Sys::Hostname::hostname(), $$, time(), rand(1000)); $task->postback( $postback ); $self->queue->enqueue($task); my ($response) = $self->queue->poll_wait( task_types => [ $postback ] ); return wantarray ? @{$response->data || []} : $response->data; } 1; __END__