我的handler()
抛出了一个SalesforceException。我想观看它并从中记录特定的错误消息,使用 Laravel 5.6 中队列上的 failed()
方法。 如果我执行以下操作,则会出现错误:
错误
[2018-04-17 00:18:12] local.ERROR: Type error: Argument 1 passed to AppListenersSyncNewsletterSignupToSalesforce::failed() must be an instance of Exception, instance of AppEventsNewsletterSignup given {"exception":"[object] (Symfony\Component\Debug\Exception\FatalThrowableError(code: 0): Type error: Argument 1 passed to App\Listeners\SyncNewsletterSignupToSalesforce::failed() must be an instance of Exception, instance of App\Events\NewsletterSignup ...
法典
public function failed(Exception $e)
{
try {
} catch(SalesforceException $e)
{
$response = $e->getResponse();
$responseBodyAsString = $response->getBody()->getContents();
logger($responseBodyAsString);
}
}
在应用服务提供程序中设置侦听器以侦听队列中失败的作业:
public function boot() {
Queue::failing(function (JobFailed $event) {
// $event->connectionName
// $event->job
// $event->exception
// check for the specific exception type
if ($event->exception instanceof SalesforceException) {
// do something
}
});
}
有关失败作业事件的更多信息。