hexsum / Mojo-Run

Mojo::Run - asynchronous external command and subroutine execution for Mojo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Mojo::Run

Mojo::Run - asynchronous external command execution for Mojo

Installation

cpan -i Mojo::Run

Getting Started

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

Lhttps://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.

About

Mojo::Run - asynchronous external command and subroutine execution for Mojo


Languages

Language:Perl 100.0%