=encoding utf8 =head1 Mojolicious::Plugin::Minion::Workers Доброго всем ¡ ¡ ¡ ALL GLORY TO GLORIA ! ! ! =head1 VERSION 0.09073 (up to Minion 9.07/100+C<my minors>) =head1 NAME Mojolicious::Plugin::Minion::Workers - does extend base Mojolicious::Plugin::Minion on manage Minion workers. =head1 SYNOPSIS # Mojolicious (define amount workers in config) $self->plugin('Minion::Workers' => {Pg => ..., workers=>2}); # or pass to $app->minion->manage_workers(<num>) later $self->plugin('Minion::Workers' => {Pg => ...}); # Mojolicious::Lite (define amount workers in config) plugin 'Minion::Workers' => {Pg => ..., workers=>2}; # Add tasks to your application app->minion->add_task(slow_log => sub { my ($job, $msg) = @_; sleep 5; $job->app->log->debug(qq{Received message "$msg"}); }); # Allow manage with amount workers (gets from config) app->minion->manage_workers(); # or override config workers by pass app->minion->manage_workers(4); # Start jobs from anywhere in your application =head1 DESCRIPTION L<Mojolicious::Plugin::Minion::Workers> is a L<Mojolicious> plugin for the L<Minion> job queue and has extending base L<Mojolicious::Plugin::Minion> for enable workers managment. =head1 Manage workers L<Mojolicious::Plugin::Minion::Workers> has patch the L<Minion> module on the following new one method. =head2 manage_workers(int) Start/restart Minion passed amount workers or get its from plugin config. None workers mean skip managment. $app->minion->manage_workers(1); Tested on standard commands (on Linux): $ perl script/app.pl daemon # one minion worker will be starting $ perl script/app.pl prefork # your amount minion workers will be starting $ morbo script/app.pl # when morbo restarts on watch changes one minion worker will be restarting too $ hypnotoad script/app.pl # your amount minion workers will be starting $ hypnotoad script/app.pl # on hot deploy minion workers will be restarting too $ hypnotoad -s script/app.pl # minion workers will stoping too B<NOTE>. For commands C<$ morbo script/app.pl> and C<$ perl script/app.pl daemon> workers always one. B<NOTE>. In case hypnotoad and C<$ kill -USR2 app_pid> minion workers will not restarts, sorry. Always use command C<$ hypnotoad script/app.pl>. B<BIG NOTE>. When minion workers restarts then B<ALL> exists processes stoped. So if you run many separate apps then dont use this module. =head1 HELPERS L<Mojolicious::Plugin::Minion::Workers> enable all helpers from base plugin L<Mojolicious::Plugin::Minion>, thus you dont need apply base plugin (auto register). =head1 METHODS L<Mojolicious::Plugin::Minion::Workers> inherits all methods from L<Mojolicious::Plugin::Minion> and override the following new ones. =head2 register $plugin->register(Mojolicious->new, {Pg => ..., worker=>1}); Register plugin in L<Mojolicious> application. =head1 SEE ALSO L<Mojolicious::Plugin::Minion>, L<Minion>, L<Mojolicious::Guides>, L<https://mojolicious.org>. =head1 AUTHOR Михаил Че (Mikhail Che), C<< <mche[-at-]cpan.org> >> =head1 BUGS / CONTRIBUTING Please report any bugs or feature requests at L<https://github.com/mche/Mojolicious-Plugin-Minion-Workers/issues>. Pull requests also welcome. =head1 COPYRIGHT Copyright 2019+ Mikhail Che. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut