Отладка обработчиков событий битрикс

39
Алексей,
Отладка обработчиков событий битрикс
Отладка обработчиков событий битрикс

Столкнулся с проблемой: долгая генерация страницы сервером при небольшом количестве запросов. Проблема была в php коде, который срабатывал по событию.

Столкнулся с проблемой: долгая генерация страницы сервером при небольшом количестве запросов. Проблема была в php коде, который срабатывал по событию.

Для поиска этого медленного кода понадобится всего пару методов:

$eventManager = \Bitrix\Main\EventManager::getInstance();
foreach ($eventManager->findEventHandlers('main', 'OnEpilog') as $i => $arEvent) { // список обработчиков OnEpilog
	if ($i >= 5) { // отсекаем часть
		$eventManager->removeEventHandler('main', 'OnEndBufferContent', $i); // удаляем обработчики
	}
}

Поясню. С помощью findEventHandlers находим все обработчики события OnEpilog, далее с помощью removeEventHandler убираем часть из них и смотрим как изменилось время генерации страницы. Изменяя условие "отсечения" вы найдёте проблемный обработчик. Также в эпилоге есть еще одно "любимое" многими событие OnEndBufferContent, его тоже стоит проверить.

Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.

Опубликовано 31 октября 2022
Поделиться
Комментарии
Авторизуйтесь чтобы получать уведомления об ответе
Столкнулся с проблемой: долгая генерация страницы сервером при небольшом количестве запросов. Проблема была в php коде, который срабатывал по событию.