Laravel 5.5 - Каналы уведомлений с разными именами очередей?

В прослушивателе событий я отправляю уведомление владельцу собаки следующим образом:

$event->dogowner->notify(new DogWasWalkedNotification);

Проблема в том, что есть два канала database/mail установите в уведомлении ниже, они оба будут добавлены в виде заданий в очереди в очередь уведомлений, установленную в конструкторе. Вместо этого я хочу добавить почтовый канал ниже к emails очередь вместо стандартной по умолчанию, установленной в конструкторе уведомлений.

Любая идея, как получить следующее уведомление только добавить почтовый канал MailMessage для emails очередь без добавления database канал в очередь вообще? (даже если это означает удаление конструктора onQueue)

<?php
namespace App\Notifications;

use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use App\Events\DogWasWalked;

class DogWasWalkedNotification extends Notification implements ShouldQueue
{
    use Queueable;

    protected $event;

    public function __construct(DogWasWalked $event) {
        $this->event = $event;

        // This is what creates 2 queued jobs (one per channel)
        $this->onQueue('notifications');
    }

    public function via($notifiable) {
        return ['database', 'mail'];
    }

    public function toArray($notifiable) {
        return [
            'activity' => 'Dog was walked!',
            'walkername' => $this->event->walkername
        ];
    }

    public function toMail($notifiable) {
      // How to set the queue name for
      // this channel to 'emails'
      return (new MailMessage)
             ->line('Dog was walked!');

    }
}

0 ответов

Другие вопросы по тегам