| 제목 | 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문 로드를 못했었습니다! 감사합니다~
                             |