我的代码如下所示。
for($i = 0; $i <= 100; $i++) {
$objUser = [
"UserName" => $request["UserName"] . $i,
"EmailAddress" => $request["EmailAddress"] . $i,
"RoleID" => RoleEnum::ProjectManager,
"Password" => $request["Password"],
];
$RegisterResponse = $this->Register->Register($objUser);
$Data = $RegisterResponse["Data"];
$job = (new AccountActivationJob($Data));
dispatch($job);
}
上面的代码创建了100个用户,每次创建一个队列来发送电子邮件通知。我正在使用数据库默认队列。
我在GoDaddy上有共享主机帐户。由于某些原因,CPU使用率达到100.这是截图。
最后循环在两者之间停止。以下是5分钟后的截图。
在这里,我的问题是:它无法继续创建100个用户。我这样做是为了测试多个用户发送注册请求的示例队列实现。我做错了吗?
答案 0 :(得分:5)
如上所述,GoDaddy有很多资源限制。你只能每小时发一封100封电子邮件。
那也不是一次。如果它检测到您发送了大量电子邮件,则会阻止您的进程。
相反,您可以将消息排队等待每20秒或30秒发送一次。这将有助于将资源保持在限制范围内,并且您的电子邮件将毫无问题地发送给客户。
您可以使用睡眠功能。
答案 1 :(得分:0)
Godaddy确实拥有您可以使用的资源限制。如果你重复它,它将杀死ssh上的进程。
限制可用here
尝试使用不同的nice参数运行php进程。
当我需要使用确实使用大量资源的工匠命令时,我会这样做。
答案 2 :(得分:0)
我做了调查结果,发现我应该转移到VPS而不是共享主机。这是GoDaddy的好又便宜的计划。 https://in.godaddy.com/hosting/vps-hosting