2011-12-30 2 views
0

"나는 cron의 대안"이라는 PHP 코드를 발견했습니다. 저는 PHP에 대한 완전한 의문을 가지고 있습니다. 그래서이 코드가 내 situtation에서 작동할까요? 그녀의 발췌 문장은 다음과 같습니다.cron의 PHP 코드 대신

<?php 

if (($last + $interval) >= time()) { 
// execute some script(s) 
} 

?> 

전자 메일을 보내기 위해 스크립트를 지연하려고합니다. 이메일 스크립트는 다음과 같습니다.

+4

나는 cron에 대한 대안이라고 부를 수있는 방법을 모르겠다. 방법에 대해 설명하는 방법에 대해 달성하기 위해. 간단한 지연을 위해서 sleep()을 사용할 수 있습니다. –

+0

아니요, 혼자서는 작동하지 않지만, 이것이 실제 질문이 아닙니다. – KingCrunch

+0

이것은 잠을 자지 못해 커다란 지연이 될 것입니다. –

답변

2

: 여기

는이 작업을 수행하는 데 사용할 수있는 방법의 몇 사이트의 첫 번째 부분에있는 부분 : // 일부 스크립트를 실행합니다. 변수 $ time 및 $ interval을 정의해야합니다.

그렇기 때문에 다른 포스터에 동의합니다. 이는 cron의 실제 대안이 아니라는 점에 동의합니다. Cron은 Windows에서 예약 된 작업으로 알고있는 것 중 * nix 버전입니다. 기본적으로 스크립트를 작성하고 cron을 사용하여 나중에 일정을 잡습니다 (나중에 사람이 개입하지 않아도 됨). 다른 한편, 게시물에 제공된 "대안"은 PHP 스크립트를 수동으로 (예 : 인터넷을 통해 액세스하여) 실행할 때만 작동합니다.

1

크론은 예를 들어 매일 특정 시간에 이메일을 보내는 데 사용됩니다. 이렇게하려면 PHP 응용 프로그램 외부에서 어떤 종류의 스크립트를 작성하고 실제로 CRON을 사용하여 스크립트를 예약 할 수 있습니다. 당신은 당신이 제공 한 코드를 사용하려는 경우에 전체 두 번째 코드 (마이너스 태그)를 삽입해야합니다, http://www.thegeekstuff.com/2011/07/php-cron-job/

2

PHP는 "대안"으로 cron을 호스트에 스크립트로 저장하고 한 번 실행합니다. 그것은 실행에서 너무 오래 내부 처리가 오래 걸리는 경우가 스크립트를 방해하지 않도록, 시간이 더 오래뿐만 아니라 걸릴 수 있으므로 백그라운드에서 작업을 포크 것, 한 번 자신에게 매 초마다 호출합니다 :

<?php 
header("X-PHP-CRON-STATUS: failure."); 
isset($_SERVER["HTTPS"]) || die('failure.'); 
ignore_user_abort(true); 
set_time_limit(0); 
header("Content-Length: 8"); 
header("Connection: close"); 
header("X-PHP-CRON-STATUS: started.", 1); 
echo 'started.'; 
flush(); 

/* run cron jobs in background/HTTP "background" script like this one */ 


$each = 1; /* second(s) */ 
$sofar = microtime(1) - $_SERVER['REQUEST_TIME']; 
if (0 < ($wait = $each - $sofar)) 
{ 
    usleep($wait * 1000000); 
} 

$uri = 'http' . ($_SERVER["HTTPS"] ? 's' : '') . '://' . $_SERVER["SERVER_NAME"]; 
!$_SERVER["SERVER_PORT"] == "80" && $uri .= ':'.$_SERVER["SERVER_PORT"]; 
$uri .= $_SERVER["REQUEST_URI"]; 
file_get_contents($uri); 

이런 스크립트는 매우 약해서 진짜 cron을 얻는 것이 좋습니다. 땜질을하기에는 괜찮습니다.