情景
我在youtube上关注如何设置队列工作人员,同时阅读最新的laravel文档。我已经正确地执行了每一步,直到我现在必须运行工人。
然而,运行worker会执行255次作业。我不确定它是否会失败"但我想它是因为电子邮件没有被发送",但没有任何事情发生。
但该用户未能正确回答他们自己的问题。
我的文件
Auth Controller:
public function register(Request $request)
{
$validatedData = $request->validate([
'full_name' => 'required',
'email' => 'required|unique:users',
'password' => 'required|confirmed',
]);
$user = User::create($validatedData);
//Authenticate the user
Auth::login($user);
//Queue the email
EmailNewUsers::dispatch();
return 'Email Sent!';
//Redirect User
// return redirect('admin/dashboard');
}
EmailNewUsers工作:
class EmailNewUsers implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
MailController::UserRegistered();
}
}
MailController
class MailController extends Controller
{
public static function UserRegistered()
{
Mail::to(Auth::user())->send(new UserRegistered());
}
}
UserRegistered Mailable
class UserRegistered extends Mailable
{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->view('emails.UserRegistered');
}
}
问题
为什么队列工作者运行255次作业然后不执行任何操作..?
修改
所以我通过改变任何东西来实现它...刚刚出去吃午饭回来了,刷新了它的工作......大约10次尝试,然后回到同样的错误。
这一次,我尝试制作一份名为" TestJob"我按照教程设置了测试工作,并且它正常工作,然后30秒后,当我重新执行相同的工作时,它停止工作。
注意第一次处理的时间 - >处理然后再次出错。我不确定这是否有帮助,但我认为id添加它。
答案 0 :(得分:0)
MailController有错误,append if (m.Msg == 0x0203 && OwnHandle == m.HWnd)
...
表和查看错误日志
答案 1 :(得分:0)
如果您不希望队列尝试255次,则需要定义必须尝试的次数。
php artisan queue:work --tries=3
如果Job在3次尝试后失败,则将在'failed_jobs'表中插入一行。在“例外”列中查找错误。
如果您没有“ failed_jobs”,请运行此命令
php artisan queue:failed-table
然后运行
php artisan migrate