0

我有一个Product触发retrieved事件的模型和一个根据 API 路径(if-else 条件)引发异常ProductRetrieved的侦听器。CheckProductValidity

另外,我有一个我已经实现的更新查询,Console\Kernal.php它每天在 00:00 运行。

问题: CheckProductValidity为计划任务引发异常。当调度程序完成时,如何在侦听器中创建异常以允许检索模型Product数据。

可能的解决方案:使用unsetEventDispatchersetEventDispatcher有时此更新查询可能需要比平时更多的时间。此外,cron 还会发送通知和处理作业(全部取决于Product),因此可能会导致问题。

4

1 回答 1

0

不是真正的解决方案,但这就是我修复它的方式。

// 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.

于 2019-07-31T06:50:43.380 回答