我正在運行Tomcat 6.0服務器上的一個perl腳本通過Windows 2008 R2從存儲庫中拉出。該腳本變得非常緩慢,因爲它必須等待git pull完成。這爲Github webhook創建了一個服務超時,它實際上觸發了腳本。除了下面的代碼外,代碼中沒有任何內容。Perl腳本緩慢通過湯姆貓6.0並生成服務超時
exec("C:\\Git\\bin\\git.exe pull") ;
如何改進腳本以便webhook開始工作。以下是我在github webhook上得到的錯誤。當我運行的瀏覽器,它需要大約50歲到超過1分鐘的腳本服務超時
:
我們不能提供這種有效載荷。湯姆貓可能超負荷了?
----使用fork後更新----- 我用下面的代碼通過fork來實現它。它在本地工作(當在命令行上執行時),但是當我通過web服務器運行時,我得到一個積極的信號給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;
我試着做叉子。腳本在本地運行良好,但是當從網絡服務器運行時,我仍然沒有通過git pull看到更新。我製作了兩個腳本,一個腳本簡單地分叉並運行另一個腳本並退出。這提高了webhook的信號能力,但不知怎的,我沒有看到第二個腳本沒有運行的變化。 –
@ZahidIrfan是的,我在想一些比叉子更不高雅的東西。管理/監視共享資源時允許兩個處理器獨立生活的東西。 – VonC