我在用mysql的框架Drupal 7和環境Windows。我有一個問題,我想要在PHP中的Asynchronus調用,我必須更新數據庫中的某些值,但我不想停止執行一個函數。即使數據庫處理正在進行,函數也應該完成並返回值。用Drupal 7在php中多線程
我在想線程方法,其中一個線程正在更新數據庫,其他線程將完成並返回函數。在PHP中可能嗎?如果是的話那怎麼樣?
我在用mysql的框架Drupal 7和環境Windows。我有一個問題,我想要在PHP中的Asynchronus調用,我必須更新數據庫中的某些值,但我不想停止執行一個函數。即使數據庫處理正在進行,函數也應該完成並返回值。用Drupal 7在php中多線程
我在想線程方法,其中一個線程正在更新數據庫,其他線程將完成並返回函數。在PHP中可能嗎?如果是的話那怎麼樣?
截至目前,有關於PHP多線程的一千個問題,他們都在Drupal上「工作」。 PHP中不支持多線程。我敢打賭,你需要使用這個功能。
passthru("/usr/bin/php /path/to/script.php ".$argv_parameter." >> /path/to/log_file.log 2>&1 &");
這將使它保持在後臺運行並將結果輸出到您的日誌。
我會建議使用從Symfony2的框架Process組件: http://symfony.com/doc/master/components/process.html
下面是一個多線程Drush教程中,我寫了一個鏈接,可以幫助你多線程的例子在Drupal 7:
http://deeson-online.co.uk/labs/multi-threading-part-1-how-make-drush-rush
雖然鏈接可能會回答問題,但您應該至少在此處發佈解決方案的摘要,因爲鏈接可能並不總是存在。 – smerny
另一種選擇是HTTP請求的並行線程&庫模塊:https://www.drupal.org/project/httprl
我認爲你需要的函數是httprl_queue_background_callback(),然後是httprl_send_request()。查看示例(API文檔不太好)。
Ajax將工作? –
看看drupal批處理api – jantimon