[ create a new paste ] login | about

Link: http://codepad.org/VzHDUb1a    [ raw code | output | fork ]

Perl, pasted on Sep 28:
package TM::GitLab::Mojo::Plugin::Worker;
use Mojo::Base 'Mojolicious::Plugin';

#use EV;
#use AnyEvent::Open3::Simple;
use AnyEvent;

sub register {
    my ($self, $app) = @_;

    $app->minion->add_task(shout => \&_shout);
}

sub _shout {
    my $job = shift;
    my $app = $job->app;
    my $log = $app->log;

    my $delay = Mojo::IOLoop::Delay->new;
    $log->debug("yay: $$ ". ref($delay));

    my $end = $delay->begin;

    my $pid = fork();
    unless (defined $pid) {
        $log->error("Can't fork: $!");
        return;
    }

    if ($pid) {
        my $w; $w = AnyEvent->child(
            pid => $pid,
            cb  => sub {
                my ($p, $s) = @_;

                $log->debug("finished: $p = $s");
                undef $w;
                $end->();
            }
        );
    } else {
        exec('echo "hai" > TEST_FILE');
        exit(1); # if exec failed
    }

#    my $ipc = AnyEvent::Open3::Simple->new(
#        on_start => sub {
#            my ($proc, $program, @args) = @_;
#
#            $log->debug("started command $program with pid: ". $proc->pid);
#        },
#        on_stdout => sub {
#            my ($proc, $line) = @_;
#            $log->debug("[stdout] $line");
#        },
#        on_stderr => sub {
#            my ($proc, $line) = @_;
#            $log->debug("[stderr] $line");
#        },
#        on_exit => sub {
#            my ($proc, $exit_value, $signal) = @_;
#
#            $log->debug("finished: $exit_value");
#            $end->();
#        },
#        on_error => sub {
#            my ($error, $program, @args) = @_;
#            $log->error("yayks: $error");
#            $end->();
#        }
#    );

#    $ipc->run('echo "hello" > TEST_FILE');
}

42;


Output:
1
2
Can't locate Mojo/Base.pm in @INC (@INC contains: /usr/lib/perl5/5.8.0/i486-linux /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i486-linux /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl .) at line 2.
BEGIN failed--compilation aborted at line 2.


Create a new paste based on this one


Comments: