| MooseX-Q4MLog documentation | Contained in the MooseX-Q4MLog distribution. |
MooseX::Q4MLog::CLI::Consume - Daemon Role To Consume Q4M Log
package MyConsume;
use Moose;
with 'MooseX::Q4MLog::CLI::Consume';
no Moose;
sub consume {
my ($self, $data) = @_;
# do whatever you want with $data, which is a hashref
}
# myconsume.pl
use MyConsume;
my $app = MyConsume->new_with_options();
my ($command) = @{ $app->extra_argv };
if (! defined $command) {
die "no command specified";
}
$app->start if $command eq 'start';
# see MooseX::Daemonize for the rest
Parses a YAML file to get the configuration out of a config file
Starts a loop that consumes the q4m log
| MooseX-Q4MLog documentation | Contained in the MooseX-Q4MLog distribution. |
# $Id: /mirror/coderepos/lang/perl/MooseX-Q4MLog/trunk/lib/MooseX/Q4MLog/CLI/Consume.pm 66297 2008-07-16T13:33:55.974156Z daisuke $ package MooseX::Q4MLog::CLI::Consume; use Moose::Role; use Queue::Q4M; use YAML (); with 'MooseX::Daemonize'; with 'MooseX::ConfigFromFile'; requires 'consume'; has 'is_running' => ( is => 'rw', isa => 'Bool', required => 1, default => 1 ); has 'table' => ( is => 'rw', isa => 'Str', required => 1, ); has 'connect_info' => ( is => 'rw', isa => 'ArrayRef', auto_deref => 1, required => 1, ); after 'start' => sub { my $self = shift; return unless $self->is_daemon; $self->run; }; no Moose; sub get_config_from_file { my ($self, $file) = @_; return YAML::LoadFile($file); } sub run { my $self = shift; my $queue = Queue::Q4M->new(connect_info => [ $self->connect_info ] ); while( $self->is_running ) { while ( $queue->next( $self->table ) ) { $self->consume( $queue->fetch_hashref ); } } } 1; __END__