2013-02-17 17 views
0

我有一臺運行apache的windows pc,並且我需要一個php腳本來連續運行以收聽來自UDP port的輸入,並採取所需的操作並將其發送回去。在我的服務器上運行一個循環的PHP腳本

我知道如何做到這一點的唯一方法是爲cmd安裝curl,然後運行php script並使用WHILE loop。我擔心的是,這是做錯的方式,並且可能不可靠並佔用大量的系統資源。

人們可以評論上述方法嗎?我聽說過cron ..但那隻適用於unix?我能做什麼?

+0

我聽說這可以用Windows任務調度程序完成?但是這不允許你說每分鐘都運行腳本。最糟糕的情況是,我必須在C#中編寫我自己的調度應用程序:( – raaj 2013-02-17 18:15:05

回答

2

嘿試試下面的解決方案。 使用bat文件並計劃執行該bat文件。

例如在bat文件executephp.bat,寫這

c:\xampp\php\php.exe -f c:\xampp\htdocs\do_something.php 

保存包含行bat文件。

轉到Windows調度程序,並創建一個新的任務,並在操作選項卡中,瀏覽指向該executephp.bat和開始 - >直接到目錄你有executephp.bat。

例如如果u將文件保存C:\xampp\htdocs下提出,在開始C:\xampp\htdocs英寸

記住調用即使不登錄的用戶腳本。

一切都設置好了,它會毫無問題地執行。

+0

我有一個問題。有沒有一種方法可以調用打開的文件?用另一個系統的url鏈接說。一旦用戶調用它,它會以某種方式執行批處理文件..? – raaj 2013-02-18 04:02:47

+0

我不知道在那... – 2013-02-18 04:26:32

0

Apache後面的PHP腳本始終有最大執行時間,因此應該在特定的超時後總是停止使用循環。

您應該更好地使用cron或像Venkat這樣的批處理腳本。有一些很棒的cron服務,它會向服務器發出GET請求並運行腳本。看看這個相關的線程:Scheduled Request to my website from an external source

這不符合您的需求?

+0

任何想法它持續多久?我總是可以計時並重新打開它,但我想知道它持續多久無論如何 – raaj 2013-02-18 04:00:59

+0

在這裏看一下PHP中的['max-execution-time'](http://www.php.net/manual/en/info.configuration.php#ini.max-execution-time),它默認是30秒,對於Apache來說:''Apache有一個Timeout指令,IIS有一個CGI超時函數,默認爲300秒。「' – ConcurrentHashMap 2013-02-18 18:55:38

相關問題