Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does adding sleep() to a loop alleviate server resources?

Tags:

php

sleep

server

I'm running a PHP loop that 'scans' a directory, every 60 seconds, until a file with a given name is found:

<?php
do {
    if (file_exists("../path/file.txt)) {
        //Do Stuff
        $status = "File Found";
        echo $status;
    } else {
        $status = "File Not Found";
        sleep(60);
    }
} while ($status == "File Not Found");
?>

In this example, would removing sleep() require more server resources?

Thank you,

like image 678
user1661677 Avatar asked Sep 12 '25 12:09

user1661677


1 Answers

In a nutshell, yes, but don't worry about it.

While sleep is executing, CPU processing of your script virtually stops. So yes, it will alleviate processing resources. (The script is still in memory, so those resources are still used, but that shouldn't be a problem on a modern machine.)

If your goal is to do this every 60 seconds, the best practice would be make your PHP a cron script, and run it at low priority.


Configure Cron for a low priority PHP script:

nano crontab -e

Add the following:

* * * * *   /usr/bin/nice -n 12 php -q /path/file.php

And replace the /path/file.php with the full path to your PHP script.


Ensure your PHP script is ready

Edit your script's file permissions to allow execution.

chmod ug+rwx /path/file.php

(Again replacing /path/file.php with your actual PHP script's full path.)

Lastly, it's a good idea to make these the very first 2 lines in your PHP script, if you intend to run it this way:

#!/usr/bin/php5
<?php
like image 66
gavanon Avatar answered Sep 15 '25 10:09

gavanon