Очередь команд Laravel: работа зависает в Windows - PullRequest
0 голосов
/ 02 июня 2019

Я создал событие, которое при срабатывании слушателя отправляет задание с задержкой 20 секунд.единственная цель этой работы - отправить электронное письмо пользователю, когда он пытается войти в систему.проблема в том, что когда я запускаю

php artisan queue:work

, ничего не отображается в терминале, и ни одно задание не задерживается.но, тем не менее, электронное письмо отправляется пользователю.Для получения дополнительной информации я использую телескоп для отладки.мой драйвер - база данных. [output] [1]

мой код для задания


class sendEmail implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public $user;
    public function __construct($user)
    {
        $this->user=$user;

    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        \Mail::to($this->user)->send(new \App\Mail\subscriptionLetters());
    }
}

при отправке задания

   public function __construct()
    {
        //
    }

    /**
     * Handle the event.
     *
     * @param  UserLoggedIn  $event
     * @return void
     */
    public function handle(UserLoggedIn $event)
    {
        \App\Jobs\sendEmail::dispatch($event->user)->delay(Carbon::now()->addSeconds(20));
    }
}
```[command in terminanl][2]


  [1]: https://i.stack.imgur.com/UDADW.png
  [2]: https://i.stack.imgur.com/V8EFm.png

1 Ответ

0 голосов
/ 02 июня 2019

пробег

php artisan config:clear

и после этого выключите сервер разработки laravel после этого запустите

php artisan serve

теперь вы увидите ваш

php artisan queue:work

работает, помните, запустить очередь: работать в отдельном терминале

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...