Mojolicious::Plugin::OnFork - Do Something Whenever a Worker Starts
Version 0.006
# Mojolicious $self->plugin('OnFork' => sub { srand }) if $ENV{HYPNOTOAD_APP}; # Mojolicious::Lite plugin OnFork => sub { srand } if $ENV{HYPNOTOAD_APP};
Mojolicious::Plugin::OnFork is a plugin to easily define code, that is executed whenever a new worker process of the web server forks.
All this plugin actually does is
Mojo::IOLoop->timer(0 => $code)
The motivation for this plugin was, that hypnotoad does not guarantee to call "srand" in perlfunc after a "fork" in perlfunc, so worker processes might all get the same sequence of "random" numbers from "rand" in perlfunc.
Starting with Mojolicious 5.76 srand is actually called after a fork, but this fact is not officially documented and according to the author can be removed in the future without any previous notice.
srand
As a consequence depending on the Mojolicious version and for this use case srand might be called twice after a worker starts.
Mojolicious::Plugin::OnFork inherits all methods from Mojolicious::Plugin and implements the following new ones.
register
Register plugin hooks in Mojolicious application.
Mojolicious, https://github.com/kraih/mojo/issues/402.
Bernhard Graf <graf(a)cpan.org>
Copyright (C) 2012 - 2017 Bernhard Graf
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Mojolicious::Plugin::OnFork, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Mojolicious::Plugin::OnFork
CPAN shell
perl -MCPAN -e shell install Mojolicious::Plugin::OnFork
For more information on module installation, please visit the detailed CPAN module installation guide.