开发者

Sleep command in PHP returns non zero

开发者 https://www.devze.com 2023-02-15 06:58 出处:网络
I have a script, that is run as a part of my module in Drupal. In this module, I use cURL functions to request html page from a remote website, then I parse the html content and write it to my databas

I have a script, that is run as a part of my module in Drupal. In this module, I use cURL functions to request html page from a remote website, then I parse the html content and write it to my database. I wanted to have a delay between every request that I do to the remote server, hence I added sle开发者_运维百科ep() in my PHP script.

function get_me_data()
{
  for( 15 iterations)
  {
    $html  =  file_get_contents($search_url);
    //parse html contents
    $delay  = mt_rand($interval1,$interval2); // interval1 = 0 , interval2=30
    $retval = sleep($delay);
  }
}
  1. function get_me_data() is initiated by cron job(hook_cron implemented in .module file).
  2. I have also tried to flush streams before the usage of sleep command. used flush(); ob_flush();fflush(filepointer); ob_implicit_flush(true)

It so happens that after 4-5 iterations, sleep() command returns NON ZERO value. the script aborts in the next iteration when sleep() is called

Let me know, if I am overlooking any aspect of sleep() here. I am using, PHP version 5.3 & Drupal 6


According to the docs http://php.net/manual/en/function.sleep.php can return non zero values.

If the call was interrupted by a signal, sleep() returns a non-zero value. On Windows, this value will always be 192 (the value of the WAIT_IO_COMPLETION constant within the Windows API). On other platforms, the return value will be the number of seconds left to sleep.

A comment in the sleep uses time_sleep_until() because it doesn't get interrupted.

0

精彩评论

暂无评论...
验证码 换一张
取 消