gpt4 book ai didi

git - Perl 脚本在 tom cat 6.0 上变慢并产生服务超时

转载 作者:行者123 更新时间:2023-11-28 22:20:16 34 4
gpt4 key购买 nike

我在 Windows 2008 R2 上的 tom cat 6.0 服务器上运行 perl 脚本以从存储库中提取。脚本变得非常慢,因为它必须等待 git pull 完成。这会为实际触发脚本的 Github webhook 创建服务超时。除了以下行,代码中没有任何内容。

exec("C:\\Git\\bin\\git.exe pull") ;

我怎样才能改进脚本,使 webhook 开始工作。以下是我在 github webhook 上得到的错误。

We couldn’t deliver this payload: Service Timeout

当我在浏览器中运行脚本时,大约需要 50 秒到 1 分钟多的时间。大概是汤姆猫重载了?

---- 使用 fork 后更新 -----我使用以下代码通过 fork 实现它。它在本地工作(当在命令行上执行时),但是当我通过网络服务器运行时,我收到一个对 webhook 的肯定信号,但是更改没有提交,这意味着 server_script 没有运行。

$pid = fork();
if( $pid == 0 ){
exec("perl server_script.pl");
print "This is child process\n";
print "Child process is existing\n";
exit 0;
}
print "This is parent process and child ID is $pid\n";
print "Parent process is existing\n";
exit 0;

最佳答案

应该可以将这两个操作解耦:

  • 监听 webhook 负载
  • 启动 git pull

第一个监听器应该简单地举起一个标志(例如触摸一个文件),以表示已接收到 webhook。

第二个进程应该监视该标志,如果该标志被提升,则启动 git pull

通过使这两个操作分离并使它们异步,您可以让 webhook 始终完成。

关于git - Perl 脚本在 tom cat 6.0 上变慢并产生服务超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23824600/

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