我创建了一个应用程序来向多个用户发送电子邮件,但在处理大量收件人时遇到问题。
错误出现在failed_jobs表格中
Illuminate\Queue\MaxAttemptsExceededException:
App\Jobs\ESender has been attempted too many times or run too long.
The job may have previously timed out.
in D:\EmailSender\vendor\laravel\framework\src\Illuminate\Queue\Worker.php:649
Run Code Online (Sandbox Code Playgroud)
这是payload在failed_jobs表中
{
"uuid":"ff988083-c1da-4d20-a2e3-c2a10e154c79",
"timeout":9000,
"id":"j2Lz0Ro0bkJpqwxKWTxC3Tiii71iE6Cm",
"data":{
"command":"O:16:\"App\\Jobs\\ESender\":13:{s:7:\"timeout\";i:9000;s:12:\"receiver_obj\";O:45:\"Illuminate\\Contracts\\Database\\ModelIdentifier\":4:{s:5:\"class\";s:12:\"App\\Receiver\";s:2:\"id\";i:6;s:9:\"relations\";a:0:{}s:10:\"connection\";s:5:\"mysql\";}s:16:\"sender_all_hosts\";O:45:\"Illuminate\\Contracts\\Database\\ModelIdentifier\":4:{s:5:\"class\";s:15:\"App\\SenderHosts\";s:2:\"id\";a:4:{i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;}s:9:\"relations\";a:0:{}s:10:\"connection\";s:5:\"mysql\";}s:11:\"message_obj\";O:45:\"Illuminate\\Contracts\\Database\\ModelIdentifier\":4:{s:5:\"class\";s:12:\"App\\Messages\";s:2:\"id\";i:36;s:9:\"relations\";a:0:{}s:10:\"connection\";s:5:\"mysql\";}s:7:\"counter\";i:1;s:3:\"job\";N;s:10:\"connection\";N;s:5:\"queue\";N;s:15:\"chainConnection\";N;s:10:\"chainQueue\";N;s:5:\"delay\";N;s:10:\"middleware\";a:0:{}s:7:\"chained\";a:0:{}}",
"commandName":"App\\Jobs\\ESender"
},
"displayName":"App\\Jobs\\ESender",
"timeoutAt":1594841911,
"maxExceptions":null,
"maxTries":null,
"job":"Illuminate\\Queue\\CallQueuedHandler@call",
"delay":null,
"attempts":1
}
Run Code Online (Sandbox Code Playgroud)
部分代码:
#1
class ESender implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/**
* The number of times the job may be attempted.
*
* @var int
*/
public $tries = …Run Code Online (Sandbox Code Playgroud)