Доброго всем
¡ ¡ ¡ ALL GLORY TO GLORIA ! ! !
0.09075 (up to Minion 9.07/100+minor)
minor
Mojolicious::Plugin::Minion::Workers - does extend base Mojolicious::Plugin::Minion on manage Minion workers.
# Mojolicious (define amount workers in config) $self->plugin('Minion::Workers' => {Pg => ..., workers=>2}); # or pass to $app->minion->workers-.manage(<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(something_slow => sub { my ($job, @args) = @_; sleep 5; say 'This is a background worker process.'; }); # But you can define tasks in config as well $self->plugin('Minion::Workers' => {Pg => ..., tasks => { foo_task => sub { ... }, }, }); # Start manage with amount workers app->minion->workers->manage(4); # or get from config app->minion->workers->manage(); # Start jobs from anywhere in your application
Mojolicious::Plugin::Minion::Workers is a Mojolicious plugin for the Minion job queue and has extending base Mojolicious::Plugin::Minion for enable workers managment.
Mojolicious::Plugin::Minion::Workers apply all config options of the base plugin Mojolicious::Plugin::Minion, and define following
Amount of Minion workers need to start/restart. This value can be overriden on $app-minion->workers->manage(...) >.
$app-
You can define Minion tasks in config.
..., tasks => { foo_task => sub { ... }, },
Mojolicious::Plugin::Minion::Workers add attr workers to the $app->minion object. $app->minion->workers object has following new one public method.
$app->minion
$app->minion->workers
Start/restart Minion passed amount workers or get its from plugin config. None workers mean skip managment.
$app->minion->workers->manage(2);
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
NOTE. For commands $ morbo script/app.pl and $ perl script/app.pl daemon amount workers always one process.
$ morbo script/app.pl
$ perl script/app.pl daemon
NOTE. In case hypnotoad and $ kill -USR2 app_pid minion workers will not restarts, sorry. Always use hot deploy command $ hypnotoad script/app.pl.
$ kill -USR2 app_pid
$ hypnotoad script/app.pl
BIG NOTE. When minion workers restarts (hypnotoad | morbo) then ALL exists minion processes stoped. So if you run many separate apps with one database backend then dont use this module. Or set separate backend databases as well.
Mojolicious::Plugin::Minion::Workers enable all helpers through base plugin Mojolicious::Plugin::Minion, thus you dont need apply base plugin (auto register).
Mojolicious::Plugin::Minion::Workers inherits all methods from Mojolicious::Plugin::Minion and override the following new ones.
$plugin->register(Mojolicious->new, {Pg => ..., worker=>1});
Register plugin in Mojolicious application.
Mojolicious::Plugin::Minion, Minion, Mojolicious::Guides, https://mojolicious.org.
Михаил Че (Mikhail Che), <mche[-at-]cpan.org>
<mche[-at-]cpan.org>
Please report any bugs or feature requests at https://github.com/mche/Mojolicious-Plugin-Minion-Workers/issues. Pull requests also welcome.
Copyright 2019+ Mikhail Che.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Mojolicious::Plugin::Minion::Workers, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Mojolicious::Plugin::Minion::Workers
CPAN shell
perl -MCPAN -e shell install Mojolicious::Plugin::Minion::Workers
For more information on module installation, please visit the detailed CPAN module installation guide.