Laravel queue stalls при использовании с часовым - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть рабочий проект, написанный на laravel, я интегрировал Sentry для отслеживания ошибок, я следовал инструкциям на их сайте, в основном просто

композитор требует часового / караульного-ларавела

и в моем приложении / Исключения / 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 artisan queue: work

он глохнет, работает последняя работа снова и снова

laravel queue worker

почта не отправлена ​​или не получена ...

Кстати, это только когда у меня есть отчеты в часовом, если я удаляю эти строки в App / Exceptions / Handler.php в методе report (), это все хорошо, также, если я удаляю очередь из уведомлений, она работает, только Комбинация сообщений об ошибках и очереди уведомлений делает меня большой проблемой.

1 Ответ

0 голосов
/ 20 апреля 2019

К сожалению, Sentry-laravel не работает с очередями.

Пожалуйста, просмотрите эту проблему в репозитории GitHub, чтобы получить больше информации об этом:

https://github.com/getsentry/sentry-laravel/issues/18

Существует еще одна проблема (открытая), которую они пытаются исправитьit:

https://github.com/getsentry/sentry-laravel/pull/228

Если вам действительно нужно поместить эти журналы в очередь сейчас, вы должны использовать https://github.com/twineis/raven-php.

...