제목 | cron 작업 중 에러 질문..(소스추가) | ||
---|---|---|---|
글쓴이 | 무엉 | 작성시각 | 2016/03/11 14:18:51 |
|
|||
ci 외 게시판에 한번 적었는데 진행하다 재 오류가 발생해서 질문 드려요 지금 제가 할 작업은 cron 에서 select 및 insert를 작동 시키려고 합니다.
그래서 crontab에 /usr/local/bin/php /home/c10/www/index.php act_cron을 등록했습니다. 근데 여기서 문제점이 컨트롤러(act_cron.php)를 쉘에서 직접 실행해보니 public function index() { echo "123"; $this->load->model('reg_m'); $this->reg_m->count_update_m(); $this->reg_m->cron_log_insert(); }
echo 123은 잘 찍혀나오는데 model이 call 되질 않네요.. 혹시나해서 $CI =& get_instance();선언 후 $this를 $CI로 변경해도 같은 에러의 반복입니다 Call to a member function model() on a non-object in.... 이런 에러가 나는데 혹시 crontab으로 컨트롤러의 function을 단독 실행이 불가능한건가요? 제가 놓치고 있는 부분이 있는지요??
********************************소스 추가 내용(act_cron.php)************************************* <?php require_once("/home/c10/www/class/DefineVar.class.php"); require_once("/home/c10/www/class/Func_lib.php"); require_once("/home/c10/www/class/Str_lib.php"); $_POST['cron'] = "1"; class Act_cron extends CI_Controller { function __construct(){//제일먼저실행 초기화 $ac = explode("/",$_SERVER['PHP_SELF']); if($ac[2] =="act_cron"){ parent::__construct(); $this->load->helper('url'); $this->load->database(); $this->load->library('pagination'); $this->load->library('pagination_custom'); $this->load->library('session'); $this->load->helper('download'); } } //문제부분 public function index() { echo "123"; $this->load->model('reg_count_m'); $this->reg_count_m->regulation_count_update_m(); $this->reg_count_m->cron_log_insert(); } }
|
|||
다음글 | 파일 업로드 문의 (5) | ||
이전글 | CI로 restful 역할을 만드는게 효율적일까요? (3) | ||
taegon
/
2016/03/11 16:01:06 /
추천
0
실행 가능합니다. 현재 상태로 웹에서 호출해 보시고 동일한 오류라면 컨트롤러를 잘못 생성하신 겁니다.
|
무엉
/
2016/03/11 16:16:24 /
추천
0
ㄴ 지금 테스트해봤는데 웹에서는 정상으로 동작하네요.. 왜 cron에만 저렇게 에러가 나오는 건지 ㅠㅠ |
taegon
/
2016/03/12 13:30:02 /
추천
0
전체적인 소스를 보지 않고는 이유를 짐작하기 어렵네요... cron이 아니라 쉘로도 실행해 보신건가요? |
무엉
/
2016/03/14 08:55:58 /
추천
0
네 cron이 아닌 쉘로 실행했을 때 저런 에러가 나타나네요 ㅠㅠ 전체적인 소스라고 할게 없는게 위의 index 함수 외의 작업한 내용들은 단순하게 컨트롤러에서 공용으로 쓰는 것들 밖에 없습니다 ㅠㅠ |
변종원(웅파)
/
2016/03/14 09:28:33 /
추천
0
무엉/ 관련 소스를 올리셔야 해결이 되겠네요.
|
무엉
/
2016/03/14 10:11:39 /
추천
0
ㄴ 내용추가했습니다!
|
Luj
/
2016/03/14 11:26:33 /
추천
0
$this->load->model('reg_m'); 이 부분 helper 밑에 한 번 넣어보세용~ 쉘에서 실행하실 때 act_cron/index 까지 입력해주신거 맞죠? |
한대승(불의회상)
/
2016/03/14 12:27:14 /
추천
0
$_POST, $_SERVER 이 변수는 웹 접속 했을 때만 사용 가능 한 변수 들인데, command line 에서 실행시 경고나 오류 없이 잘 되나요? |
taegon
/
2016/03/14 12:56:54 /
추천
0
본문에 적어 놓으신 실행 문구로 실행하시면 생성자에서 if가 참이 되질 못합니다. 그러기 때문에 다른 라이브러리들이 로드되지 못하는 겁니다. $ac를 print_r이나 var_dump로 찍어보시면 아실겁니다. 해당 컨트롤러를 cron에서만 동작하게 하실려면 $this->input->is_cli_request()로 CLI로 실행하는지 확인하신 후에 동작을 시키시면 됩니다. |
무엉
/
2016/03/14 13:28:56 /
추천
0
Luj/ 네 정상 입력했는데 오류가 나서 확인해 보니 $_SERVER 문제가...ㅎㅎ
|
무엉
/
2016/03/14 13:31:36 /
추천
0
한대승(불의회상) / 신기하게 $_POST 부분은 에러가 안나는데 $_SERVER 부분의 문제였네요 $_SERVER 부분 수정해보니 모델 부분에 진입했네요 감사합니다! |
무엉
/
2016/03/14 13:33:00 /
추천
0
taegon / 말씀대로 바로 윗단 $_SERVER의 접속이 불가해서 if문 로드를 못했었습니다! 감사합니다~
|