2

laravel 5.3で実装されたこの新しい通知機能とその素晴らしい機能をテストしています。

認証されたユーザーにメールを送信するこの通知クラスがあります (彼が特定のルートに到達したとき)。これはデフォルトのコードです。

通知

namespace App\Notifications;

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

class notifyme extends Notification  implements ShouldQueue
{
    use Queueable;

    public function __construct()
    {
        //
    }
    public function via($notifiable)
    {
        return ['mail'];
    }
    public function toMail($notifiable)
    {
        return (new MailMessage)
                    ->line('The introduction to the notification.')
                    ->action('Notification Action', 'https://laravel.com')
                    ->line('Thank you for using our application!');
    }

これは、通知クラスをインスタンス化するコントローラー関数です

public function notifyme()
    {
        $user = Auth::user()

        $user->notify(new notifyme($user));
        //$user->notify((new notifyme($user))->delay(Carbon::now()->addMinutes(10)));

         return redirect('/home');
    }

ubuntu os を使用し、ローカルホストで正常に動作するはずの同期としてキュードライバーを設定している間QUEUE_DRIVER="sync"

私は労働者を始めましたphp artisan queue:work

しかし、端末ウィンドウには何も表示されず、ページはまだ少し遅いです (キューが機能していません) ここに画像の説明を入力

私はデフォルトの queue.php を持っていて、それを変更していません。前述したように、sync をドライバーとして使用してい ます 提案された解決策はありますか?

4

1 に答える 1

7

syncドライバーはキューを使用しないため、たとえばテストを実行するためにジョブを同期的に実行できます。

ここにリストされているlaravelが提供するドライバーの1つを使用する必要があります - Laravel queues、またはRabbitMQなどのカスタムをインストールする必要があります

于 2016-08-20T06:11:09.220 に答える