Отладка при работе агентов
Инструкция актуальна если агенты модуля деактивируются или не выполняются вовсе.

Включаем логи БУС в .settings.php

Изначально нужно включить логирование в БУС. Для этого есть общая инструкция.

Ждем выполнения агентов

Теперь нам необходимо подождать, пока cron выполнит очередной раз наш файл с агентами. Если есть возможность, то можно запустить его вручную.
При деактивированных агентах следует их активировать и подождать.

Ищем ошибки

После того, как мы подождали 5-10 минут, переходим в файл лога и смотрим ошибки. В логе ошибок ищем наш файл cron_events.php, если есть такой, то смотрим, что пишет и в каком агенте произошла ошибка.

Проверяем ошибки глобально

Также рекомендуется проверить ошибки PHP и MySQL всего сайта, возможно там будет причина.

По коду ошибки ищем откуда она возникла и какая конечная функция у нее

Здесь необходимо проверить сами логи и убедиться, что ошибка исходит не из модуля, если это так, то напишите разработчику того решения, которое вызывает ошибку. Если ошибка модуля, то пишите на почту поддержки [email protected]

Пример ошибки в базе данных

1
2021-02-01 08:02:45 - Host: - UNCAUGHT_EXCEPTION - [Bitrix\Main\DB\SqlQueryException]
2
Mysql query error: (2006) MySQL server has gone away (400)
3
SELECT
4
`highloadblock_highload_block`.`ID` AS `ID`,
5
`highloadblock_highload_block`.`NAME` AS `NAME`,
6
`highloadblock_highload_block`.`TABLE_NAME` AS `TABLE_NAME`
7
FROM `b_hlblock_entity` `highloadblock_highload_block`
8
9
WHERE `highloadblock_highload_block`.`TABLE_NAME` = 'rbs_ms_stocks'
10
/home/m/site.test/public_html/bitrix/modules/main/lib/db/mysqliconnection.php:137
11
#0: Bitrix\Main\DB\MysqliConnection->queryInternal(string, array, NULL)
12
/home/m/site.test/public_html/bitrix/modules/main/lib/db/connection.php:330
13
#1: Bitrix\Main\DB\Connection->query(string)
14
/home/m/site.test/public_html/bitrix/modules/main/lib/orm/query/query.php:3398
15
#2: Bitrix\Main\ORM\Query\Query->query(string)
16
/home/m/site.test/public_html/bitrix/modules/main/lib/orm/query/query.php:825
17
#3: Bitrix\Main\ORM\Query\Query->exec()
18
/home/m/site.test/public_html/bitrix/modules/main/lib/orm/data/datamanager.php:500
19
#4: Bitrix\Main\ORM\Data\DataManager::getList(array)
20
/home/m/site.test/public_html/bitrix/modules/rbs.moyskladstocks/lib/hlcache/base.php:16
21
#5: Rbs\MoyskladStocks\HlCache\Base::getTableInfo(string)
22
/home/m/site.test/public_html/bitrix/modules/rbs.moyskladstocks/lib/hlcache/base.php:30
23
#6: Rbs\MoyskladStocks\HlCache\Base::getEntityDataClass(string)
24
/home/m/site.test/public_html/bitrix/modules/rbs.moyskladstocks/lib/hlcache/base.php:41
25
#7: Rbs\MoyskladStocks\HlCache\Base::isExsist(string)
26
/home/m/site.test/public_html/bitrix/modules/rbs.moyskladstocks/lib/hlcache/stocks.php:197
27
#8: Rbs\MoyskladStocks\HlCache\Stocks::isExsist()
28
/home/m/site.test/public_html/bitrix/modules/rbs.moyskladstocks/lib/agent.php:171
29
#9: Rbs\MoyskladStocks\Agent::stockCheck(integer, integer)
30
/home/m/site.test/public_html/bitrix/modules/main/classes/mysql/agent.php(164) : eval()'d code:1
31
#10: eval
32
/home/m/site.test/public_html/bitrix/modules/main/classes/mysql/agent.php:164
33
#11: CAgent::ExecuteAgents(string)
34
/home/m/site.test/public_html/bitrix/modules/main/classes/mysql/agent.php:42
35
#12: CAgent::CheckAgents()
36
/home/m/site.test/public_html/bitrix/php_interface/cron_events.php:16
Copied!
В примере мы видим, что ошибка возникла в файле cron_events.php (последняя строка) и ошибка якобы в самом модуле, поскольку в логе присутствует путь до модуля. Однако в самом начале лога видно, что ошибка возникает из-за базы данных.
Решение:
  • Обратиться к хостинг-провайдеру, чтобы увеличили время ожидания при работе с БД.
  • В настройках модуля уменьшить количество выбираемых элементов.
Last modified 9mo ago