Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以识别linux上正在进行的web请求吗?_Linux_Perl_Websocket - Fatal编程技术网

我可以识别linux上正在进行的web请求吗?

我可以识别linux上正在进行的web请求吗?,linux,perl,websocket,Linux,Perl,Websocket,我有一个使用WebSocket的perl Catalyst应用程序。有时,我必须重新启动应用程序进行错误修复和功能。 为此,我更改了nginx配置,重新加载nginx并用新代码启动并行应用程序。然后重新启动旧应用程序并杀死中间应用程序。 这个逻辑链的问题是,我可能会终止正在进行的请求。所有新请求都得到了很好的处理,这不是问题所在。 所以我的问题是,我是否可以检测到套接字有一个正在进行的请求 或者,我应该使用穷人的解决方案,在杀人前等待30秒 Nginx相关部分(现场): (重新启动): 对于应用

我有一个使用WebSocket的perl Catalyst应用程序。有时,我必须重新启动应用程序进行错误修复和功能。 为此,我更改了nginx配置,重新加载nginx并用新代码启动并行应用程序。然后重新启动旧应用程序并杀死中间应用程序。 这个逻辑链的问题是,我可能会终止正在进行的请求。所有新请求都得到了很好的处理,这不是问题所在。 所以我的问题是,我是否可以检测到套接字有一个正在进行的请求

或者,我应该使用穷人的解决方案,在杀人前等待30秒

Nginx相关部分(现场):

(重新启动):


对于应用程序重启,我使用Daemon::Control start/stop。

根据这一点,命令nginx-s quit(或kill-quit)执行一个优雅的关闭,等待工作进程完成当前请求的服务

嗯,这一切都很漂亮,但应用程序是在FastCGI上运行的,所以我怀疑nginx是否知道FastCGI工作进程。Nginx是唯一的代理。而且我只重新加载nginx conf,所以nginx总是处于启动状态。
upstream backend {
    ip_hash;

    server unix:/tmp/frontend.socket;
    server unix:/tmp/frontend_redundant.socket down;
}
upstream backend {
    ip_hash;

    server unix:/tmp/frontend.socket down;
    server unix:/tmp/frontend_redundant.socket;
}