Laravel 5进度条,用于查看浏览器中运行命令的状态

时间:2015-07-20 16:57:11

标签: php laravel-5 real-time

我对Laravel 5的疑问:是否真的可以进行实时页面,在那里我可以运行laravel命令并在该页面上显示该命令的进度?

例如:我们有60k行的搜索索引,我们需要重建那个索引,在laravel命令中我们可以用循环来完成它,在每次迭代的edn中我们可以在命令行中显示进度条。

但如何在浏览器页面中显示它? laravel 5有一些套餐吗?或其他解决方案?

也许有人知道一些解决方案如何从命令中检索答案并且不要停止它,所以命令会运行异步?

感谢。

1 个答案:

答案 0 :(得分: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%。