У меня есть модель Product, которая запускает retrieved событие ProductRetrieved, и прослушиватель CheckProductValidity, который выдает исключение в зависимости от пути API (условие if-else).
Кроме того, у меня есть запрос на обновление, который я реализовал в Console\Kernal.php, который выполняется каждый день в 00:00 часов.
Проблема:CheckProductValidity создает исключение для запланированных задач. Как сделать исключение в прослушивателе, чтобы разрешить извлечение данных модели Product, когда это делается планировщиком.
Возможное решение: Используйте unsetEventDispatcher и setEventDispatcher, но иногда этот запрос на обновление может занять больше времени, чем обычно. Кроме того, cron также отправляет уведомления и обрабатывает задания (все зависит от Product), так что это может вызвать проблемы.





Не совсем решение, но вот как я это исправил.
// fix to catch if artisan schedule:run has intiated this check;
$parameters = app('request')->server->get('argv');
$allowed_commands = ['schedule:run', 'migrate:refresh', 'db:seed', 'queue:work'];
if ($parameters[0]==='artisan'
&& in_array($parameters[1], $allowed_commands))
return true;
В слушателе я добавил этот код, который будет проверять, был ли запрос результатом команды artisan или route.