cron 사용법 본문

cron 사용법

cron 사용법

crontab없이 cron역할을 수행하는 방법을 알아보겠습니다.
대부분 웹호스팅에서는 crontab을 사용할수 없는데 MySQL을 이용해 비슷하게 구현하는 방법입니다.
단, 방문자의 접속시간을 비교해 동작하기 때문에 방문자가 한명이라도 있어야 작동합니다.

얼마전 소셜메타사이트 제작중 xml을 불러오는 과정에서 응용한건데 나름 쓸만합니다.

두개의 필드를 가진 레코드 한개짜리 simple_cron이라는 테이블을 만들어줍니다.
create table `simple_cron` ( `id` int (1) NOT NULL , `timestamp` int (10) NULL , PRIMARY KEY ( `id` ));
//처음 simple_cron테이블을 만들고 나서 반드시 데이터를 넣어주셔야 합니다.




crontab 사용법
나름대로 쉽게 설명한다고 했는데 어떨지 모르겠습니다.
$query_time = "select timestamp from simple_cron where id = 1";
$result_time=mysql_query($query_time);
$time_since_last=mysql_result($result_time,0,"timestamp");
//simple_cron테이블의 timestamp필드의 값을 불러옵니다.

$timenow = time(); //finds the current timestamp
//$timenow 현재시간입니다.

$hours_since_last_cron = 3; //enter the number of hours between jobs
$seconds_since_last_cron = $hours_since_last_cron *3600;
//크론으로 수행할 동작의 주기입니다. 3 * 3600 -> 3시간마다 수행

$time_since_last_cron = $timenow - $time_since_last;
//현재시간에서 simple_cron테이블에서 불러온 시간을 빼줍니다.


if ($time_since_last_cron >$seconds_since_last_cron){
inlcude ("update_front_page.php");
//크론으로 수행할 동작의 주기가 $time_since_last_cron보다 작을경우
//inlcude ("update_front_page.php");을 수행합니다.

$update_fp_time2 = "update simple_cron set timestamp = '$timenow' where id = 1";
$update_fp_time2=mysql_query($update_fp_time2);
//현재시간을 simple_cron테이블의 timestamp필드에 넣어줍니다.
}

* 처음 simple_cron테이블을 만들고 나서 반드시 데이터를 넣어주셔야 합니다.

영문출처는 http://comedyaddict.hubpages.com/hub/cron 을 참조하세요.

crontab없이 cron역할을 수행하는 방법을 알아보았는데요 웹호스팅시 사용하시면 나름쓸만하니 응용해보시길 바랍니다.