2013-02-04 129 views
0

可能重複:
Run php script as daemon processPHP守護進程,並與之交互

我正在開發一個web應用程序與Twitter API的緊密合作。 基本上每次用戶點擊一個特定的按鈕,我需要將這個動作記錄到我的數據庫(1),並通過API(2)代表用戶發佈推文。 由於這些行爲以某種方式連接起來,它們必須發生在「同一時間」,或者更確切地說,如果(1)成功,則發佈推文(2)。 在本地數據庫(1)中添加一行是瞬間的,發生在< 1ms或更短時間內,但twitter API速度很慢,所以它可能需要600ms以上才能成功,而且對於最終用戶等待這麼長時間是不可接受的,更何況有時它可能會更慢甚至更糟,超時。

所以我在想如果有一種方法讓PHP腳本像服務器一樣接受請求並在它們到來時將它們排隊。 當然,我可以每次啓動一個腳本,但想象一起啓動100個腳本,這會導致巨大的內存使用和開銷,在他們完成工作時將它們殺死。

+0

好的......那麼你的問題是什麼?守護進程聽起來完全合適。 – ceejayoz

+0

任何機會使用FPM? 'fastcgi_finish_request()'可能就是你想要的。 – Leigh

+0

我的問題不是如何運行一個守護進程,但是如果我可以通過向其發送數據並處理它們(來自另一個腳本)來與它交互。更像是一個http服務器。 –

回答

1

這是PHP守護進程教程的「聖經」。

http://kvz.io/blog/2009/01/09/create-daemons-in-php/

當心,檢查遺留警告

+0

似乎我不能從其他腳本中談到它,是嗎? –

+0

你可以創建一個守護進程來讀取數據庫並將你的東西插入到數據庫隊列中。 – Napolux

+0

這就是我想要避免的,因爲我在按需求思考問題,而不是像那樣異步。我猜PHP不適合這種事情。 –