2012-02-22 68 views
0

我正在用PHP/MySQL使用Yii框架構建一個Web應用程序。此應用程序的關鍵方面是管理大量實體;並對SOAP Web服務執行大批量的請求以更新這些實體(卡)的信用。從Web應用程序執行大量的Web服務請求。監視進度

我需要實現某種隊列來管理執行批處理(+/- 2000)請求的過程。

我想不通什麼是最好的方法;

  • 後臺工作;如何用php/yii實現這個。如何給用戶提供反饋

  • 實現一個AJAX隊列?任何最佳實踐?關閉瀏覽器可能導致中斷風險?

回答

1

我有類似的問題。最好的方法是在後臺進程中執行此批處理。要向用戶提供反饋,必須將當前狀態寫入數據庫(例如,寫入表「batch_status」)。當用戶想要查看當前情況時,只需從表格中檢索數據即可。如果您在執行時遇到問題,歡迎在評論中向我提出一個問題;)

在php中運行後臺進程追加到您的命令' > /dev/null & echo $!'。然後執行你的命令:$lastLine = exec($cmd, $output, $return_var);。之後,您將獲得$lastLine變量中的進程ID。如何在YII中使用CLI,你可以在這裏找到:http://www.yiiframework.com/doc/guide/1.1/en/topics.console

+0

謝謝。你能給我一些準則來實現PHP/Yii中的後臺進程嗎? – ec30 2012-02-24 09:57:40

+0

對不起,很長的答案。在php中運行後臺進程追加到你的命令'>>/dev/null&echo $!''。執行命令:'$ lastLine = exec($ cmd,$ output,$ return_var);'。之後,您將獲得'$ lastLine'變量中的進程ID。如何在YII中使用CLI,你可以在這裏找到:http://www.yiiframework.com/doc/guide/1.1/en/topics.console – Oleg 2012-02-28 09:51:02

相關問題