我有一个用laravel编写的工作项目,我已经集成了Sentry来监视错误,我按照他们网站上的说明进行操作,基本上
作曲者需要哨兵/哨兵laravel
并在我的App / Exceptions / Handler.php中
if (app()->bound('sentry') && $this->shouldReport($exception)) {
app('sentry')->captureException($exception);
}
现在,这可以正常工作,我看到了哨兵中的错误。但是在应用程序的另一端,无论我在哪里使用队列,例如,我都有“忘记密码”通知,并且它实际上实现了ShouldQueue类:
<?php
namespace App\Notifications\Auth;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
class PasswordResetRequest extends Notification implements ShouldQueue
{
use Queueable;
protected $token;
public function __construct($token)
{
$this->token = $token;
}
public function via($notifiable)
{
return ['mail'];
}
public function toMail($notifiable)
{
$url = url('/password/find/'.$this->token);
return (new MailMessage)
->line('You are receiving this email because we received a password reset request for your account.')
->action('Reset Password', url($url))
->line('If you did not request a password reset, no further action is required.');
}
}
并且当触发按预期工作时,我在作业表中有一条新记录(我有数据库作为队列驱动程序)
现在,当我开始我的工人
PHP的工匠队列:工作
它停顿了,它一遍又一遍地工作
没有发送或接收的邮件...
顺便说一下,这仅当我在哨兵中进行报告时,如果我在report()方法中删除了App / Exceptions / Handler.php中的那些行,那一切都很好,如果我从通知中删除队列,它也能正常工作,那么仅是哨兵的组合错误报告和通知排队使我成为一个大问题。