Pankaj
Pankaj

Reputation: 10115

CPU is utilizing 100% resource and therefore Queue failed

My code is like below.

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);
}

Above code is creating 100 users and Each time a queue is being created to send email notification. I am using database default queue.

I have shared hosting account on GoDaddy. Due to some reasons the CPU usage reaches 100. Here is the screenshot.

enter image description here

Finally loop stops in between. Below is the screenshot after 5 mins.

enter image description here

Here, My problem is: It is not able to continue creating 100 users. I am doing this to test the sample queue implementation where multiple users send request for registration. Am I doing anything wrong?

Upvotes: 5

Views: 629

Answers (3)

Tanay
Tanay

Reputation: 105

As stated above, GoDaddy has a lot of resource limitations. You can only send 100 Emails an hour is what I have heard.

That also not at a single time. If it detects you are sending a lot of emails, your process is blocked.

Instead, you can queue up the messages to be sent 1 per 20 seconds or 30 seconds. It will help keep the resources in limits, and your emails are sent to the customers without any problem.

You can use the sleep function for this.

Upvotes: 5

Pankaj
Pankaj

Reputation: 10115

I did the findings and found that I should move to VPS instead of Shared hosting. here are the nice and cheap plans by GoDaddy. https://in.godaddy.com/hosting/vps-hosting

enter image description here

Upvotes: 0

Danilo Kobold
Danilo Kobold

Reputation: 2581

Godaddy does have a limit of resources you can use. If you go over it, it will kill the processes on ssh.

The limits are avaiable here

Try running the php process with a different nice parameter.

That's what I do when i need to use an artisan command that does use a lot of resources..

Upvotes: 0

Related Questions