What is a practical use for PHP's sleep()?
I just had a look at the docs on sleep()
.
Where would you use this function?
Is it there to give the CPU a break in an expensive function?
Any common pitfalls?
Solution 1:
One place where it finds use is to create a delay.
Lets say you've built a crawler that uses curl
/file_get_contents
to get remote pages. Now you don't want to bombard the remote server with too many requests in short time. So you introduce a delay between consecutive requests.
sleep
takes the argument in seconds, its friend usleep
takes arguments in microseconds and is more suitable in some cases.
Solution 2:
Another example: You're running some sort of batch process that makes heavy use of a resource. Maybe you're walking the database of 9,000,000 book titles and updating about 10% of them. That process has to run in the middle of the day, but there are so many updates to be done that running your batch program drags the database server down to a crawl for other users.
So you modify the batch process to submit, say, 1000 updates, then sleep
for 5 seconds to give the database server a chance to finish processing any requests from other users that have backed up.