NAME
Mojo::Run - asynchronous external command execution for Mojo
VERSION
version 0.3
SYNOPSIS
use Mojo::Run;
use Mojo::Log;
my $run = Mojo::Run->new;
$run->max_forks(10);
$run->log(Mojo::Log->new(
level => 'error',
path => 'log/mojo_run.log',
));
$run->spawn(
cmd => sub {
my $pid = shift;
my $param = shift; # {a => 1, b => 2}
my $data = {};
... do something
return $data;
},
param => {a => 1, b => 2},
exec_timeout => 120, # sec
stdout_cb => sub {
my ($pid, $chunk) = @_;
},
stderr_cb => sub {
my ($pid, $chunk) = @_;
},
exit_cb => sub {
my $pid = shift;
my $res = shift;
warn $res->{result}->[0];
},
);
$run->spawn(
cmd => 'ps aux',
exit_cb => sub {
my $pid = shift;
my $res = shift;
},
);
$run->spawn(
cmd => ['perl', '-v'],
exit_cb => sub {
my $pid = shift;
my $res = shift;
},
);
$run->start;
Result
Result in exit_cb is a HASH with following keys:
- cmd
- param
- exit_status
- exit_signal
- exit_core
- stdout
- stderr
- result
- time_started
- time_stopped
- time_duration_exec
- time_duration_total
SOURCE REPOSITORY
https://github.com/likhatskiy/Mojo-Run
AUTHOR
Alexey Likhatskiy, <likhatskiy@gmail.com>
LICENSE AND COPYRIGHT
Copyright (C) 2012-2013 "Alexey Likhatskiy"
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.