2015-07-20 62 views
0

我對Laravel 5有疑問:是否真正做到實時頁面,在哪裏可以運行laravel命令並在該頁面上顯示該命令的進度?Laravel 5進度條查看瀏覽器中運行命令的狀態

例如:我們有60k行的搜索索引,我們需要重建該索引,在laravel命令中我們可以使用循環和每次迭代的edn,我們可以在命令行中顯示進度條。

但是如何在瀏覽器頁面中顯示它?有沒有laravel 5的一些軟件包?或其他解決方案?

也許有人知道一些解決方案如何從命令檢索答案並不停止它,所以命令將運行異步?

謝謝。

回答

1

我能想到的最簡單的方法是將命令進度存儲在像memcache或redis之類的緩存中,然後使用前端查詢緩存進度的密鑰。

命令/後端:

$cache = new Memcache; 
$cache->addServer('localhost', 'port'); 

foreach ($records as $key => $index) { 
    $your_index->index($index); 
    $cache->set('command_progress', ($key/count($records)) * 100); 
} 

前端:

$cache = new Memcache; 
$cache->addServer('localhost', 'port'); 

$percentage = $cache->get('command_progress') ? : 0; 
var_dump($percentage); 

把前端代碼在AJAX腳本,並保持輪詢它,直到它達到100%。

+0

謝謝,我在想這樣的事情,但是有了會議,我認爲這是更簡單的方法。但我認爲這不是一個好方法。如果不是,請等待另一個答案,然後我會檢查你的答案。 – RexHunt