Laravel 5: возможно ли одновременные звонки на разные маршруты? - PullRequest
0 голосов
/ 16 апреля 2020

В моем приложении Laravel 5.2 при попытке показать пользователю индикатор прогресса во время долгого выполнения задачи я испытываю поведение приложения в очереди, которое вы могли видеть в однопоточном настольном приложении.

В основном:

  1. вошедший в систему пользователь A запускает долго выполняющуюся задачу t1
  2. тот же вошедший в систему пользователь A (или другой вошедший в систему пользователь B) запрашивает маршрут t2 который должен немедленно вернуть r2 (возвращает фиксированное значение независимо от t1). Обратите внимание, что если это имеет значение, пользователь B вошел в систему с вкладки частного просмотра.

с

public function t1(Request $request) {
 for ($i = 0; $i < 10; $i++) {
    sleep(1);
    Log::info("r1 = " .$i );
 }

 $output = array('success' => 'Whatever'
 );
 return response()->json($output);
}```

и

public function t2() {
  $r2 = rand(0, 100); // for testing purpose only
  Log::info("r2  " . $r2);
  return response()->json(array($progress));
}

В моем Laravel 5.2 приложение, я вижу, что r2 появляется только после завершения t1, как если бы мое приложение не смогло обработать несколько одновременных запросов к разным маршрутам.

Это не ожидаемое поведение. Что я должен изменить, чтобы t2 немедленно вернулся, даже если t1 все еще работает?

Любая помощь приветствуется: -)

Редактировать: Laravel сервер dev ОДНО РЕЗЬБОВЫЙ

На самом деле я тестировал это на своей машине разработчика с помощью Laravel artisan serve, который является однопоточным , как описано здесь . Переход на prod сервер убрал все проблемы, упомянутые здесь. Итак, проблема решена ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...