gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 01:35:14 26 4
gpt4 key购买 nike

在 Morbo(和 Hypnotoad)服务器下运行的程序中,对 exit() 的调用被静默忽略,并有效地作为回调的返回。 END block 像往常一样触发,但程序本身永远不会退出。

#!/usr/bin/perl

use Modern::Perl;
use Mojolicious::Lite;

END {
say "END block";
}

Mojo::IOLoop->timer(5 => sub {
say "Sleeping...";
sleep 15;
say "Before...";
exit(1);
say "Never seen";
});

app->start;

$ morbo test.pl
Server available at http://127.0.0.1:3000
Sleeping...
Before...
END block
^C

最佳答案

启动 Mojolicious 应用程序时,可能会发生一些不好的事情(没有数据库连接)。我决定更改我的应用程序的根 URL。

在 Myapp.pm 中:

sub startup {
my $app = shift;
$app->plugin('Config');
...
my $r = $app->routes;
$r->get('/')->to('root#index')->name('root');

eval {
$app->check_important_things_which_can_die;
};
if ($@) {
$r->find('root')->remove;
$r->get('/')->to('Error::Root#index')->name('error_root');
}

我不知道在使用路由后这是否适用于正在运行的应用程序。

关于perl - 如何退出在 Morbo 或 Hypnotoad 服务器下运行的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47756361/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com