Laravel asyn c загрузка из события в .blade. php - PullRequest
0 голосов
/ 24 марта 2020

Я делаю один проект, посвященный тестированию порталов. и у меня было что-то вроде этого в моем контроллере.

    $process = new Process(['../app/Http/Controllers/shcheck.py', '-dj', $request->IP]);
    try {
        $process->mustRun();
        while ($process->isRunning()) {
            // waiting for process to finish
        }
        $headers = json_decode($process->getOutput(),true);
        $data= array('title'=> $title,
        'headers'=> $headers);
        return view('pages.index')->with($data);
    } catch (ProcessFailedException $exception) {
        echo $exception->getMessage();
    }

, но этот подход не масштабируемый, потому что некоторые мои тесты могут выполняться в течение минуты, поэтому я гуглил и обнаружил, что могу использовать события и слушателей, стек их в очередь, а не ждать, пока работа не будет завершена. но сейчас. У меня проблема, как передать переменную headders в FE после того, как слушатель завершит свою работу?

У меня есть это как blade-файл. php Файл, который я добавлял для просмотра

   @if(isset($headers))
    @if(count($headers)>0)
    <div class="no-gutters border rounded overflow-hidden flex-md-row shadow-sm position-relative  p-2 row">
    <ul>
      @foreach($headers as  $head=> $head_value)
        <li>{{$head}}</li>
        <ul>
        @foreach($head_value as $he=> $x_value)
          @if(strlen($he)>3)
          <li>{{$he}}: {{$x_value}}</li>
          @endif
          @if(strlen($he)<=3)
          <li>{{$x_value}}</li>
          @endif
          @endforeach
        </ul>
      @endforeach
      </ul>
      </div>
    @endif
   @endif

Должен ли я нужно как-то включить Ajax для такой работы? или каков наилучший способ сделать это.

...