對於多個正在運行的PHP腳本(10到100)進行通信,什麼是最少的內存密集型解決方案?在正在運行的PHP腳本之間傳遞數據
- 共享內存:
- 監視器更改
- 保持運行的查詢在DB檢查新數據
其他技術我聽說過,但從來沒有嘗試過的平面文件(APC或核心功能)
- 消息隊列(Active MQ和公司)
對於多個正在運行的PHP腳本(10到100)進行通信,什麼是最少的內存密集型解決方案?在正在運行的PHP腳本之間傳遞數據
其他技術我聽說過,但從來沒有嘗試過的平面文件(APC或核心功能)
一般來說,基於共享內存的解決方案將是最快的,並且在大多數情況下開銷最小。如果你可以使用它,那就做吧。
消息隊列我不太瞭解,但是當選擇在數據庫和平面文件之間時,由於併發問題,我會選擇數據庫。
您必須鎖定的文件才能添加一行,可能導致其他腳本無法寫入其消息。
在基於數據庫的解決方案中,您可以使用每條消息的一條記錄。該記錄將包含一個唯一的ID,收件人和消息。收件人腳本可以輕鬆地輪詢新郵件,並在閱讀後快速安全地刪除相關記錄。
非常感謝!我正在尋找答案,是的,我更喜歡數據庫而不是共享內存,因爲數據會持續發生在機器上。 – 2010-02-20 14:13:14
@Jeremy:你到底在找什麼? :) – 2010-02-20 14:47:07
這是很難不知道回答:
等等......
使用DB可能是最容易在PHP環境設置和,取決於有多少每分鐘的查詢和這些查詢的類型,這可能確實是sanest解。我個人會先嚐試一下,然後看看它是不夠的。
但是,如果沒有關於應用程序的更多信息,再次難以確定。
有多少個腳本?只是一對或很多很多? – Joelio 2010-02-20 13:26:52
10到100個腳本? – 2010-02-20 13:27:23
什麼是OS /平臺?你提出的建議是IPC(進程間通信),它的設施根據實際運行的PHP而有很大的不同。 – 2010-02-20 13:41:19