我在尝试将要发送给注册用户的消息排队时遇到问题,当我运行时一切正常,但是队列无法正常工作,有人可以帮我吗? 这是注册控制人
protected function create(array $data)
{
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
'type' => $data['type'],
]);
$email = (string)$data['email'];
$job = (new SendEmailJob($email))->delay(Carbon::now()->addSeconds(5));
dispatch($job);
return $user;
}
我检查了是否可以发送电子邮件,并且可以发送电子邮件,但是当我指向特定的电子邮件而不是注册表中的数据时。 这是SendEmailJob
public function handle($user)
{
Mail::to($user)->send(new SendEmailMailable());
}
答案 0 :(得分:3)
听起来您没有队列在运行。您可以使用
php artisan queue:work
您可能还需要一个失败的工作表,而工匠对此有一个命令:
php artisan queue:failed-table
php artisan migrate
如果要删除所有失败的作业,可以执行以下操作:
php artisan queue:flush
我建议在laravel文档网站上阅读所有这些内容:https://laravel.com/docs/5.7/queues