=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