perl - 如何定义 Mojo::Server::Prefork 的生成处理程序?

标签 perl mojolicious hypnotoad

我有一个用 perl/Mojolicious 编写的简单 Web 应用程序,并在 hypnotoad 下运行。

我需要为“spawn”事件定义一些处理程序(由Mojo::Server::Prefork 发出)。

但我不知道如何在Mojolicious应用程序的启动方法的代码中插入这个hander定义。 $self->on("spawn"=>sub {}) 不起作用:( 并且 Dumper($self) 根本没有帮助:没有 $self ->server 或 $server->prefork ...

请告诉我该怎么做。

谢谢!

最佳答案

虽然我仍然不知道如何定义在进程“spawn”上触发的处理程序,但我可以告诉你,使用绝对可以完成相同的事情

Mojo::IOLoop->singleton->next_tick(sub {
  doingSomethingOnProcSpawn()
});

正如 Mojolicious Cookbook ( http://mojolicious.org/perldoc/Mojolicious/Guides/Cookbook#Pre-forking ) 中所述:

During startup your application is preloaded in the manager process, which does not run an event loop, so you can use "next_tick" in Mojo::IOLoop to run code whenever a new worker process has been forked and its event loop gets started.

提示:正如我在实际应用程序中看到的那样,Mojo::IOLoop->singleton->next_tick 和 Mojo::IOLoop->next_tick 的工作原理完全相同,所以我不知道它们之间有什么区别。

关于perl - 如何定义 Mojo::Server::Prefork 的生成处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43322443/

相关文章:

perl - 如何基于字符串创建 Perl 变量名?

regex - 如何使用Perl查找与正则表达式匹配的所有字符串实例?

multithreading - 在 Mojolicious 中同时获取数据

perl - Mojolicious 源 IP 和用户代理

perl - 为什么 Hypnotoad 的热部署会重新运行旧的 http 请求?

windows - 让 Perl 在 Windows 上像 Linux 一样工作(通配符扩展)

perl - 指定可选参数的正确语法是什么?

perl - Mojolicious:路由占位符的 URL 解码不一致

perl - 如何退出在 Morbo 或 Hypnotoad 服务器下运行的程序