2014-06-24 49 views
1

我正在使用PHP編寫Web應用程序。如果選擇查詢時間過長,則中止選擇查詢

這個應用程序的一個功能是一個文件存檔,它是另一臺服務器上的MySQL數據庫。而這個檔案服務器是非常不可靠的性能明智的,但不受我控制。檔案服務器通常經常使用長表鎖,這會導致獲得連接,但不會獲得任何數據。

這經常會導致打開MySQL連接,導致Web應用程序服務器的資源飽和。結果整個Web應用程序變得很慢/無法訪問。

我想解耦這兩個系統。

我認爲如果邏輯方法是讓我的PHP應用程序中止SELECT查詢,如果它花費比1秒或2秒更長的時間來釋放資源並向用戶顯示遠程系統沒有及時響應的消息。

但是,如何最好地實施這樣的解決方案?


更新:set_time_limit()選項看起來有希望。但並不完全令人滿意,因爲我無法向用戶顯示「消息」,但至少可以幫助防止資源飽和。

+0

你不能那樣做。你可以嘗試使用mysql配置,但你已經說過,你無法控制服務器。 – colburton

+0

可能重複[限制函數或命令PHP的執行時間](http://stackoverflow.com/questions/1176497/limit-execution-time-of-an-function-or-command-php) – Daniel

回答

0

您可以設置MySQL的時候出像this

或者你可以把它放在這樣的代碼this

我覺得第二個解決方案可能會更好地爲您 這時如果超時錯誤引發,你可以告訴服務器沒有響應

+0

這是連接超時,我認爲它不起作用,當你連接,但等待答案... – mogosselin

+0

啊,是的,我誤解了這個問題我猜堆棧的答案會更好 – user3309301