2017-02-20 42 views
1

我有個笨web應用程序,我已經做了一個模型,做一個凸輪API的請求,使打印屏幕,劇本的作品好,這裏是:執行一個模型的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

我想你的cron是從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