2011-07-12 44 views
-3

我的當前應用程序對PHP頁面進行ajax調用,該頁面向我們的Oracle平臺上的JSP頁面發出API請求。目前,PHP腳本簡單地相信從JSP返回的有效數據,並向ajax成功處理程序發送一個{true} json響應。 ajax被設置爲現在正常失敗,因此無論如何它都能正常工作,但對我們沒有幫助。PHP PCNTL - 可信的錯誤記錄可能嗎?

我的任務是,一旦jsp文件設置爲引發異常,我將PHP相應地處理異常,記錄錯誤並返回json {false}響應。

我們擔心如果日誌過於全面,日誌記錄可能需要很長時間。這個過程(無記錄或錯誤檢查)目前速度非常快,速度是一個關鍵因素。我想繞過這個潛在的瓶頸是告訴PHP「記錄錯誤,但不要等待確認記錄了任何內容,只需返回false」。

我知道分叉可能與PCNTL,但我很猶豫分叉整個過程,因爲我可以看到,如果我們分叉,是非常需要內存。

是否有可能做我希望的事情,即使沒有PCNTL,我該如何做到這一點?

+0

我不明白downvotes,但我確實瞭解close請求。我的問題顯然表明研究工作。 – AlienWebguy

+0

btw。你現在返回的是不是一個有效的JSON –

+1

你知道這是一年前,而jsp從java端發回它。我甚至沒有在那裏工作 – AlienWebguy

回答

1

PCNTL將是一個壞主意,正如你所猜測的。

你有沒有基準測試日誌性能會是什麼樣子?有可能您嘗試過早優化。可以理解的是,因爲它是ajax,所以你希望儘可能快地做出響應,但是如果記錄會引入0.01秒的平均延遲,那麼也許這是值得的。

還要確保基準fopen()/fwrite()/fclose()syslog()之間的性能差異,如果使用系統日誌是一種選擇。

與PHP異步執行任何操作都非常困難。假設在PHP進程中登錄太昂貴了,我會用Java寫一個小記錄器或者通過HTTP POST(例如)發送日誌消息給它。有了像Log4J或Logback這樣的庫,一半的工作已經完成,只需處理傳入的消息並將它們記錄在工作線程中。因爲我不認爲你的設置已經足夠Rube Goldbergish了...... :)

+1

我接受,所以你得到你的觀點;)我們仍然在這裏圍繞這個想法,但如果有什麼改變,我會更新這個線程爲未來的用戶。 – AlienWebguy