2013-08-07 40 views
0

我正在研究基於位置的社交網站,我正在整合foursquare。我已經使用foursquare登錄,每當用戶使用他的foursquare帳戶登錄時,我通過使用此功能獲得他的訪問令牌,我從foursquare帳戶獲取他的所有數據,這些數據非常大並且花費很多時間。這就是爲什麼我正在尋找一種解決方案,它將在週期內連續檢索四方數據。如何連續運行PHP和/或CodeIgniter函數

有沒有什麼辦法可以讓run the codeIgniter or PHP function continuously更新所有的用戶數據instead of updating the data scheduled basic like using cronjob,它應該像我運行一次的函數那樣運行,它會運行無限的時間不停。

注:

我使用CURL從四方

感謝得到提前數據!

回答

0

你需要什麼是守護PHP過程,我已經在過去做過,並且實在不記得我用過的東西,但快速谷歌搜索給了我http://pear.php.net/package/System_Daemon

我可以告訴你的是,PHP不是這種事情的好選擇。我遇到了很多問題,這直接關係到PHP進程一直在運行的事實。最後,我將其重寫爲Java(http://commons.apache.org/proper/commons-daemon/jsvc.html

您還可以看看作業服務器,例如Gearman(http://gearman.org/)是衆所周知的。這裏是Gearman PHP lib http://php.net/manual/en/book.gearman.php

我個人對這些類型的任務使用了http://www.celeryproject.org/(因爲這些任務可以被調度和手動觸發)。

1

你可以寫一個簡單的PHP腳本像下面,並通過在cron作業調度,然後一旦運行此腳本,刪除的cron選項卡運行此腳本(該腳本將保持乳寧):

while (true) 
{ 
    // Setup your CURL request for foursquare 
    // Fire the CURL request and get the results 
    // do the processing 
    // You can probably put a sleep here before it again loops 
    // Here is the magic to break the infinite loop - check a 
    // variable from database table or from some ini file and break the loop 
    // if the variable is set 
} 

希望能幫助到你。