Drupal에서 모듈의 일부로 실행되는 스크립트가 있습니다. 이 모듈에서는 cURL 함수를 사용하여 원격 웹 사이트에서 HTML 페이지를 요청한 다음 HTML 컨텐트를 구문 분석하고이를 데이터베이스에 씁니다. 원격 서버에 대한 모든 요청 사이에 지연이 있기 때문에 PHP 스크립트에 sleep()
을 추가했습니다.PHP의 Sleep 명령이 0이 아닌 값을 반환합니다.
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);
}
}
- 기능
get_me_data()
은 크론 작업 (.module 파일에 구현 hook_cron)에 의해 시작된다. - 또한 sleep 명령을 사용하기 전에 스트림을 플러시하려고했습니다. 그것은 그래서 4 ~ 5 번 반복 한 후,
sleep()
명령이 리턴 NON ZERO 값을 발생flush(); ob_flush();fflush(filepointer); ob_implicit_flush(true)
을 사용했다. sleep()
이 호출 될 때 스크립트가 다음 반복에서 중단됩니다.
sleep()
의 모든 측면이 간과되면 알려주세요. PHP 버전 5.3 & 드루팔 (Drupal) 6
입력 해 주셔서 감사합니다. time_sleep_until()도 사용했습니다. 여기서 주목해야 할 것은 drupal localhost 설치에서이 스크립트를 실행할 때 sleep()이나 time_sleep_until()도 실패하지 않는다는 것입니다. – rachel
time_sleep_until()을 사용하여 내 서버에서 PHP 스크립트의 유효성을 검사했습니다. 두 번 반복 한 후에는 함수 호출 바로 전에 debug 문을보고 디버그 문이 없습니다. – rachel
@rachel localhost/server에서 실행중인 OS는 무엇입니까? – Jacob