CI 묻고 답하기

제목 음.. 크론은 어떻게 사용하나요..
글쓴이 sisco 작성시각 2010/08/10 10:40:41
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 30115   RSS
CI 사용시 특정 컨트롤러를 크론에 등록해서 사용하고 싶습니다..
이럴땐 어떻게 하면되는지요..

자세히 부탁드립니다 ㅜ.ㅜ
 다음글 도와주세요 (3)
 이전글 magic_quotes_gpc (php 5.3.3) (2)

댓글

양승현 / 2010/08/10 13:22:20 / 추천 0
0 0 * * * lynx http://www.abc.com/controllers_name/models_name/index.php

텍스트 웹브라우저로 사용하라는군요.. ㅎㅎ
배강민 / 2010/08/10 14:17:34 / 추천 0
sisco / 2010/08/10 15:01:22 / 추천 0
아 감사합니다. ^^
tuyitu719 new / 2026/03/14 11:40:28 / 추천 0

1. 크론에서 컨트롤러 실행하는 기본 원리

CodeIgniter는 URL 구조로 컨트롤러를 실행하기 때문에 크론에서도 해당 URL을 호출하거나 CLI로 실행하면 됩니다.

방법은 보통 2가지가 있습니다.


방법 1: URL을 크론에서 호출하는 방법

가장 간단한 방법입니다.

예를 들어 컨트롤러가 다음과 같다면


 
 
application/controllers/Cron.php
 

 
 
class Cron extends CI_Controller {

public function update_data()
{
echo "Cron job executed";
}

}
 

브라우저에서 실행되는 URL


 

이 URL을 crontab에 등록합니다.


 
 
crontab -e
 

예시 (5분마다 실행)


 
 
*/5 * * * * wget -q -O - http://yourdomain.com/cron/update_data >/dev/null 2>&1
 

또는


 

방법 2: CLI로 직접 실행 (추천)

서버 내부에서 직접 실행하는 방식이라 속도와 보안이 더 좋습니다.

크론 등록


 
 
*/5 * * * * php /home/user/public_html/index.php cron update_data
 

설명


 
 
php index.php 컨트롤러 메소드
 


 
 
php index.php cron update_data
 

이렇게 실행됩니다.


3. 크론에서만 실행되게 제한 (보안)

외부 URL에서 실행되지 않도록 막을 수도 있습니다.


 
 
class Cron extends CI_Controller {

public function __construct()
{
parent::__construct();

if (!$this->input->is_cli_request()) {
show_404();
}
}

}
 

이렇게 하면 CLI에서만 실행됩니다.


정리

CI에서 크론 실행 방법

1️⃣ URL 호출 방식


 

2️⃣ CLI 실행 방식 (추천)


 
 
php index.php cron update_data