저는 cronjob을 사용하는 공유 서버에서 매우 느린 PHP 스크립트를 실행하고 있습니다. (스크립트는 때때로 서버에서 실행을 일시 중지하는 일부 HTTP 요청을 수행합니다 ~ 15-20 초 내에 실행을 완료합니다.)비 차단 모드에서 cronjob에서 PHP 스크립트 실행
문제는 cronjob이 헬프 데스크에서 종료된다는 것입니다 공유 서버가 5 초 이상 연속해서 실행해서는 안된다고 말했습니다.
그래서 (심각한 최적화 작업을하기 전에) 스크립트를 실행하고 스크립트가 계속 실행되는 동안 즉시 리턴한다고 생각했습니다. 지금까지 두 가지 방법에 대해 생각했습니다.
- Cronjob은 PHP 스크립트가 끝날 때까지 기다리지 않습니다.
- Cronjob은 주 PHP 스크립트를 호출하고 두 번째 스크립트가 반환 될 때까지 기다리지 않고 바로 반환하는 더미 PHP 스크립트를 실행합니다.
내가 웹에 특히이 웹 사이트에서 모두 옵션에 대해 읽었습니다, 정말 작동 뭔가를 찾을 수 없습니다 : multi_curl 아무것도 바로 첫 번째 스크립트 마무리하면하지 않습니다 ...
미리 감사드립니다. 가능한 솔루션을
편집 난 그냥 내놓았다 한 : 그것은 당신이 여기에 또는 다른 곳에서도 웹에서 익숙 할 수있다 코드를 유사 할 수
header("Content-Length: 0");
header("Connection: close");
flush();
$mainUrl = 'mySecondScript.php';
$active= null;
$mch = curl_multi_init();
$ch1 = curl_init($mainUrl);
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_multi_add_handle($mch, $ch1);
$resultCurl = curl_multi_exec($mch, $active);
do {
$resultCurl = curl_multi_exec($mch, $active);
} while ($resultCurl == CURLM_CALL_MULTI_PERFORM);
-하지만이 경우 작동하지 않을 I 다른 사람들이 저를 위해 쓴 것처럼 그것을 사용하십시오 - 오직 이것처럼!
감사 Michoel 전에는 그것을 시도했는데 어떤 이유에서든 첫 번째 스크립트를 호출하는 ~ 50 번 반복되는 루프를 발생 시켰습니다. 설명 할 수없는 현상 (모든 첫 번째 스크립트 작업은 두 번째 스크립트를 호출하는 것이고 두 번째 스크립트는 호출하지 않았습니다.) 어쨌든 나는 나는 두 가지 스냅 샷 (내가 두 가지로 작동하지 않았다)에서봤을 때 더러운 솔루션을 찾았다 고 생각한다. 내 첫 메시지를 편집하여 다른 사람들에게 도움이 될지 아니면 내 문제를 개선 할 수 있을지 생각해 보라. – Yizhar