Author image Михаил Че
and 1 contributors

Mojolicious::Plugin::Minion::Workers

Доброго всем

¡ ¡ ¡ ALL GLORY TO GLORIA ! ! !

VERSION

0.09073 (up to Minion 9.07/100+my minors)

NAME

Mojolicious::Plugin::Minion::Workers - does extend base Mojolicious::Plugin::Minion on manage Minion workers.

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

DESCRIPTION

Mojolicious::Plugin::Minion::Workers is a Mojolicious plugin for the Minion job queue and has extending base Mojolicious::Plugin::Minion for enable workers managment.

Manage workers

Mojolicious::Plugin::Minion::Workers has patch the Minion module on the following new one method.

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

NOTE. For commands $ morbo script/app.pl and $ perl script/app.pl daemon workers always one.

NOTE. In case hypnotoad and $ kill -USR2 app_pid minion workers will not restarts, sorry. Always use command $ hypnotoad script/app.pl.

BIG NOTE. When minion workers restarts then ALL exists processes stoped. So if you run many separate apps then dont use this module.

HELPERS

Mojolicious::Plugin::Minion::Workers enable all helpers from base plugin Mojolicious::Plugin::Minion, thus you dont need apply base plugin (auto register).

METHODS

Mojolicious::Plugin::Minion::Workers inherits all methods from Mojolicious::Plugin::Minion and override the following new ones.

register

  $plugin->register(Mojolicious->new, {Pg => ..., worker=>1});

Register plugin in Mojolicious application.

SEE ALSO

Mojolicious::Plugin::Minion, Minion, Mojolicious::Guides, https://mojolicious.org.

AUTHOR

Михаил Че (Mikhail Che), <mche[-at-]cpan.org>

BUGS / CONTRIBUTING

Please report any bugs or feature requests at https://github.com/mche/Mojolicious-Plugin-Minion-Workers/issues. Pull requests also welcome.

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.