2017-02-20 2 views
1

У меня есть CodeIgniter веб-приложение, и я уже сделал модель, которая будет делать запрос на распредвал API, чтобы сделать экран печати, скрипт работает хорошо, вот это:Выполнение модели в CodeIgniter с cronjob

<?php 

class CronjobImagePrintScreenAPI extends CI_Model{ 
function __construct() 
{ 
     // Call the Model constructor 
     parent::__construct(); 
     $this->load->library('curl'); 
     $this->load->helper('file'); 
} 



public function show_jobs(){ 
    $flag = FALSE; 
    $query = $this->db->get('cron_jobs'); 
    $query_result = $query->result(); 
    if (empty($query_result)) { 
    $flag = FALSE; 
    }else{ 
    $flag = TRUE; 
    } 
    if($flag === TRUE){ 
    $datasidget = $this->curl->simple_get('myloginapi'); 
    $datasid = json_decode($datasidget,true); 
    $data_sid = $datasid['data']['sid']; 

    $reqUrl = "myprintscreenapi"; 
    $imageencode = $this->curl->simple_get($reqUrl); 
    $insert_id = $query_result[0]->name; 
    $path = "./images/$insert_id"; 
    write_file($path, $imageencode, $mode = 'wb'); 
    $this->db->where('name', $insert_id); 
    $this->db->delete('cron_jobs'); 

    } 
} 
} 

И я хочу сделать cron, который будет выполнять эту модель выше один раз за каждые 1 минуту, я знаю, как это сделать, то, что я не знаю, это то, что php-скрипт мне нужно написать, чтобы запустить эту модель с cron я сделал такой контроллер:

<?php 
class Cronpicture extends CI_Controller { 
public function __construct() { 
    parent:: __construct(); 
    $this->load->helper('url','form'); 
    $this->load->library('pagination'); 
    $this->load->model('CronjobImagePrintScreenAPI'); 
} 
public function getcronjob() { 
$result=$this->CronjobImagePrintScreenAPI->show_jobs(); 
return $result; 
} 
} 
?> 

Но это, очевидно, не будет работать, функция. Любые идеи о том, как сделать исполняемый файл php для работы с cron, чтобы вызвать эту функцию модели? Благодаря!

+0

Я полагаю ваш хрон работает от CLI, так что просто следовать примеру из [документы] (https://www.codeigniter.com/user_guide/general/cli.html). – Tpojka

ответ

1

Вы можете сделать:

php /path_to_index/index.php Cronpicture getcronjob 

Или просто Wget и использовать URL

wget -O http://yoururltoload 
+0

Спасибо, сэр! Работал – Bogdan

Смежные вопросы