我正在研究消費者的web應用程序,需要做一個長時間運行的後臺進程綁定到每個客戶的請求。長時間運行,我的意思是在1到3分鐘之間。尋找模式/方法/建議來處理長時間運行的操作綁定到web應用程序
下面是一個示例流程。對象/小部件並不重要。
- 客戶來到網站並指定他們正在尋找的物件/小工具。
- 我們搜索/清除/過濾符合某些初始條件的小部件。 < - 長時間運行過程
- 客戶進一步配置他們正在尋找的小部件的更多細節。
- 長時間運行過程完成後,客戶可以在轉換前完成最後幾個步驟。
步驟3和步驟4並不重要。我只是提到他們,因爲我們可以在長時間運行的過程中購買一些時間。
我們正在使用的環境是LAMP堆棧 - 目前使用PHP。它似乎不是一個好的設計,讓長時間運行的進程在mod_php(或fastcgi進程)中佔用apache線程。我們的應用的apache層應該專注於提供內容而不是數據處理IMO。
幾個問題:
- 是我們在思考的權利,我們應該走出阿帕奇/ web應用程序層的這種「長時間運行」的部分分開?
- 有沒有一個標準/典型在Linux/Apache/MySQL/PHP(我們可以使用不同的語言進行處理,如果合適的話)打破這種方式?
- 有關如何解決問題的建議?例如。我們是否創建了一個通過FIFO隊列攪動的deamon?
編輯:爲了澄清,只有大約四分之一的長期運行過程是以數據庫爲中心的。我們正在努力優化該部分。我們可能會做一些工作,但我們現在的工作量有限。
謝謝!
您好,我們曾做過多次越過模式的結果某處記錄,以確保它是索引正確。我們的侷限性在於,我們無法進行許多離線處理(數據使用協議的B/c)。 – drsnyder 2008-10-27 18:31:54