Hello community, here is the log from the commit of package perl-Minion for openSUSE:Factory checked in at 2017-10-13 14:20:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Minion (Old) and /work/SRC/openSUSE:Factory/.perl-Minion.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Minion" Fri Oct 13 14:20:41 2017 rev:31 rq:533850 version:7.07 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Minion/perl-Minion.changes 2017-09-23 21:36:12.413612068 +0200 +++ /work/SRC/openSUSE:Factory/.perl-Minion.new/perl-Minion.changes 2017-10-13 14:21:04.203084554 +0200 @@ -1,0 +2,9 @@ +Fri Oct 13 05:32:44 UTC 2017 - [email protected] + +- updated to 7.07 + see /usr/share/doc/packages/perl-Minion/Changes + + 7.07 2017-10-11 + - Added reap event to Minion::Job. + +------------------------------------------------------------------- Old: ---- Minion-7.06.tar.gz New: ---- Minion-7.07.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Minion.spec ++++++ --- /var/tmp/diff_new_pack.4liMe7/_old 2017-10-13 14:21:04.811057824 +0200 +++ /var/tmp/diff_new_pack.4liMe7/_new 2017-10-13 14:21:04.811057824 +0200 @@ -17,7 +17,7 @@ Name: perl-Minion -Version: 7.06 +Version: 7.07 Release: 0 %define cpan_name Minion Summary: Job queue ++++++ Minion-7.06.tar.gz -> Minion-7.07.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-7.06/Changes new/Minion-7.07/Changes --- old/Minion-7.06/Changes 2017-09-21 11:19:39.000000000 +0200 +++ new/Minion-7.07/Changes 2017-10-11 23:18:29.000000000 +0200 @@ -1,4 +1,7 @@ +7.07 2017-10-11 + - Added reap event to Minion::Job. + 7.06 2017-09-21 - Added guard method to Minion. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-7.06/META.json new/Minion-7.07/META.json --- old/Minion-7.06/META.json 2017-09-21 19:46:25.000000000 +0200 +++ new/Minion-7.07/META.json 2017-10-12 10:28:11.000000000 +0200 @@ -54,6 +54,6 @@ }, "x_IRC" : "irc://irc.perl.org/#mojo" }, - "version" : "7.06", + "version" : "7.07", "x_serialization_backend" : "JSON::PP version 2.94" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-7.06/META.yml new/Minion-7.07/META.yml --- old/Minion-7.06/META.yml 2017-09-21 19:46:25.000000000 +0200 +++ new/Minion-7.07/META.yml 2017-10-12 10:28:11.000000000 +0200 @@ -27,5 +27,5 @@ homepage: http://mojolicious.org license: http://www.opensource.org/licenses/artistic-license-2.0 repository: https://github.com/kraih/minion.git -version: '7.06' +version: '7.07' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-7.06/lib/Minion/Job.pm new/Minion-7.07/lib/Minion/Job.pm --- old/Minion-7.06/lib/Minion/Job.pm 2017-08-07 17:37:20.000000000 +0200 +++ new/Minion-7.07/lib/Minion/Job.pm 2017-10-12 10:27:52.000000000 +0200 @@ -26,7 +26,7 @@ sub is_finished { my $self = shift; return undef unless waitpid($self->{pid}, WNOHANG) == $self->{pid}; - $? ? $self->fail("Non-zero exit status (@{[$? >> 8]})") : $self->finish; + $self->_handle; return 1; } @@ -35,7 +35,7 @@ sub perform { my $self = shift; waitpid $self->start->pid, 0; - $? ? $self->fail("Non-zero exit status (@{[$? >> 8]})") : $self->finish; + $self->_handle; } sub pid { shift->{pid} } @@ -61,6 +61,12 @@ sub stop { kill 'KILL', shift->{pid} } +sub _handle { + my $self = shift; + $self->emit(reap => $self->{pid}); + $? ? $self->fail("Non-zero exit status (@{[$? >> 8]})") : $self->finish; +} + sub _run { my $self = shift; @@ -130,6 +136,22 @@ say "Job $id is finished."; }); +=head2 reap + + $job->on(reap => sub { + my ($job, $pid) = @_; + ... + }); + +Emitted in the worker process managing this job, after the process performing it +has exited. + + $job->on(reap => sub { + my ($job, $pid) = @_; + my $id = $job->id; + say "Job $id ran in process $pid"; + }); + =head2 spawn $job->on(spawn => sub { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-7.06/lib/Minion.pm new/Minion-7.07/lib/Minion.pm --- old/Minion-7.06/lib/Minion.pm 2017-09-21 11:19:16.000000000 +0200 +++ new/Minion-7.07/lib/Minion.pm 2017-09-21 19:46:51.000000000 +0200 @@ -16,7 +16,7 @@ has remove_after => 172800; has tasks => sub { {} }; -our $VERSION = '7.06'; +our $VERSION = '7.07'; sub add_task { ($_[0]->tasks->{$_[1]} = $_[2]) and return $_[0] } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Minion-7.06/t/pg.t new/Minion-7.07/t/pg.t --- old/Minion-7.06/t/pg.t 2017-09-21 11:15:52.000000000 +0200 +++ new/Minion-7.07/t/pg.t 2017-10-11 23:12:53.000000000 +0200 @@ -418,7 +418,7 @@ $worker->unregister; # Events -my ($enqueue, $pid); +my ($enqueue, $pid_start, $pid_stop); my $failed = $finished = 0; $minion->once(enqueue => sub { $enqueue = pop }); $minion->once( @@ -429,7 +429,8 @@ my ($worker, $job) = @_; $job->on(failed => sub { $failed++ }); $job->on(finished => sub { $finished++ }); - $job->on(spawn => sub { $pid = pop }); + $job->on(spawn => sub { $pid_start = pop }); + $job->on(reap => sub { $pid_stop = pop }); $job->on( start => sub { my $job = shift; @@ -455,7 +456,9 @@ is $result, 'Everything is fine!', 'right result'; is $failed, 0, 'failed event has not been emitted'; is $finished, 1, 'finished event has been emitted once'; -isnt $pid, $$, 'new process id'; +isnt $pid_start, $$, 'new process id'; +isnt $pid_stop, $$, 'new process id'; +is $pid_start, $pid_stop, 'same process id'; $job = $worker->dequeue(0); my $err; $job->on(failed => sub { $err = pop });
