Индикатор прогресса Laravel 5 для просмотра статуса запуска команды в браузере

У меня вопрос по поводу Laravel 5: реально ли сделать страницу в реальном времени, где я могу запустить команду laravel и отобразить на этой странице ход выполнения этой команды?

Например: у нас есть поисковый индекс с 60k строками, и нам нужно перестроить этот индекс, в команде laravel мы можем сделать это с помощью цикла, а в edn каждой итерации мы можем отображать индикатор выполнения в командной строке.

Но как показать это на странице браузера? Есть ли пакеты для laravel 5? Или другие решения?

Может быть, кто-то знает некоторые решения, как получить ответ из команды и не останавливать его, поэтому команда будет работать асинхронно?

Благодарю.

0

Решение

Самый простой способ сделать это — сохранить прогресс команды в кеше, таком как memcache или redis, а затем запрос на внешний интерфейс, который кеширует ключ для прогресса.

Command / Backend:

$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%.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]