NAME
POE::Component::SmokeBox::Backend - smoker backend to POE::Component::SmokeBox
VERSION
version 0.58
SYNOPSIS
use strict;
use warnings;
use Data::Dumper;
use POE qw(Component::SmokeBox::Backend);
my $perl = '/home/cpan/rel/perl-5.8.8/bin/perl';
POE::Session->create(
package_states => [
'main' => [qw(_start _results)],
],
);
$poe_kernel->run();
exit 0;
sub _start {
my ($kernel,$heap) = @_[KERNEL,HEAP];
$heap->{backend} = POE::Component::SmokeBox::Backend->smoke(
event => '_results',
perl => $perl,
type => 'CPANPLUS::YACSmoke',
command => 'smoke',
module => 'K/KA/KANE/CPANPLUS-0.84.tar.gz',
);
return;
}
sub _results {
my ($kernel,$heap,$result) = @_[KERNEL,HEAP,ARG0];
print Dumper( $result );
return;
}
DESCRIPTION
POE::Component::SmokeBox::Backend is the smoker backend to POE::Component::SmokeBox::JobQueue and ultimately POE::Component::SmokeBox.
It takes a processes a single CPAN distribution against a given perl
executable using a configurable backend type ( currently, CPAN::YACSmoke, CPANPLUS::YACSmoke or CPAN::Reporter ), monitors the process for idle ( ie. no output ) or excess runtime, and returns the results to the requesting POE::Session.
CONSTRUCTOR
spawn
-
Creates a new POE::Component::SmokeBox::Backend component. Takes a number of parameters:
'event', the event to return the results to, mandatory; 'session', specify an alternative POE session to send the results to; 'command', the backend command to run: check, index, smoke, default is check; 'perl', the path to the perl executable to use, default is $^X; 'type', the type of backend to use, default is CPANPLUS::YACSmoke; 'idle', change the idle timeout, specified in seconds, default is 600; 'timeout', change runtime timeout, specified in seconds, default is 3600; 'module', the module to process, mandatory if 'smoke' command is specified; 'env', a hashref of %ENV values to set when processing; 'no_log', enable to not store the job output log, default is false;
You may also pass in arbitary parameters which will passed back to you in the
event
specified. These arbitary parameters must be prefixed with an underscore.Returns a POE::Component::SmokeBox::Backend object.
check
-
As above, but automagically runs a
check
. index
-
As above, but automagically runs an
index
. smoke
-
As above, but automagically runs an
smoke
.
METHODS
session_id
-
Returns the component's POE::Session ID.
shutdown
-
Terminates the component. The current job is killed as a result.
current_log
-
Returns an arrayref containing lines of output from the current job.
INPUT EVENTS
shutdown
-
Terminates the component. The current job is killed as a result.
OUTPUT EVENTS
ARG0 of the event
specified in one of the constructors will be a hashref with the following keys:
'log', an arrayref of STDOUT and STDERR produced by the job;
'PID', the process ID of the POE::Wheel::Run;
'status', the $? of the process;
'start_time', the time in epoch seconds when the job started running;
'end_time', the time in epoch seconds when the job finished;
'idle_kill', only present if the job was killed because of excessive idle;
'excess_kill', only present if the job was killed due to excessive runtime;
'term_kill', only present if the job was killed due to a poco shutdown event;
'cb_kill', only present if the job was killed due to the callback returning false;
Plus any of the parameters given to one of the constructors, including arbitary ones.
ENVIRONMENT
Setting the environment variable PERL5_SMOKEBOX_DEBUG
will cause the component to spew out lots of information on STDERR.
SEE ALSO
POE::Component::SmokeBox::Backend::Base
AUTHOR
Chris Williams <chris@bingosnet.co.uk>
COPYRIGHT AND LICENSE
This software is copyright (c) 2023 by Chris Williams.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.