#php #symfony #symfony4 #symfony-eventdispatcher
#php #symfony #symfony4 #symfony-eventdispatcher
Вопрос:
у меня проблема с диспетчером событий на Symfony4. Сценарий продолжается через 25 секунд после завершения события . Здесь код:
контроллер (необходимая часть):
$this->logger->notice("Log Start");
$response = new JsonResponse($responseArray, 200);
$this->eventDispatcher->dispatch(new FilterUserResponseEvent($user, $request, $response), FOSUserEvents::REGISTRATION_COMPLETED);
$this->logger->notice("Log End");
EventSubscriber (необходимая часть):
$this->logger->notice("REGISTRATION_COMPLETED Start");
...
$this->logger->notice("REGISTRATION_COMPLETED End");
Результаты журналов:
10:00:00 Log Start
10:00:00 REGISTRATION_COMPLETED Start
10:00:00 REGISTRATION_COMPLETED End
10:00:25 Log End
как это возможно? в моем скрипте нет ничего между окончанием события и другим журналом. может быть, это ошибка ядра symfony? Я хочу сказать, что это не систематично, это случается иногда.
спасибо за вашу помощь!
Комментарии:
1. Вы проверили, есть ли другие прослушиватели событий, которые также могут прослушивать ваше событие? Профилировщик Symfony может отображать их все, включая правильную временную шкалу
2. К сожалению, эта ситуация обнаруживается только на рабочем сервере. Я пытаюсь воспроизвести его в тестировании, чтобы отладить, как вы сказали.