Mám jednoduchú webovú aplikáciu napísanú v Perl / Mojolicious a bežím pod hypnotoad.
Potrebujem definovať nejaký obslužný program pre udalosť "spawn" (vydaný Mojo :: Server :: Prefork).
Ale neviem, ako vložiť túto definíciu handeru do kódu metódy spustenia aplikácie Mojolicious. $self->on("spawn"=>sub {})
nefunguje :( A Dumper($self)
nebolo vôbec užitočné: neexistujú žiadne $ self-> server alebo $ server-> prefork ...
Povedzte mi, prosím, ako na to.
Vďaka!
odpovede:
0 pre odpoveď č. 1Aj keď stále neviem, ako definovať obslužný program spustený na procese „spawn“, môžem povedať, že úplne to isté sa dá urobiť použitím
Mojo::IOLoop->singleton->next_tick(sub {
doingSomethingOnProcSpawn()
});
Ako je opísané v Mojolicious Cookbook (http://mojolicious.org/perldoc/Mojolicious/Guides/Cookbook#Pre-forking):
Počas spustenia je vaša aplikácia predinštalovaná vmanažérsky proces, ktorý nespúšťa slučku udalostí, takže môžete použiť "next_tick" v Mojo :: IOLoop na spustenie kódu vždy, keď bol rozdvojený nový pracovný proces a jeho slučka udalostí sa spustí.
Tip: Ako vidím vo svojej skutočnej aplikácii, Mojo :: IOLoop-> singleton-> next_tick a Mojo :: IOLoop-> next_tick fungujú úplne identicky, takže neviem, aký je medzi nimi rozdiel.