【问题标题】:Execute a model in codeigniter with cronjob使用 cronjob 在 codeigniter 中执行模型
【发布时间】:2018-12-18 18:08:51
【问题描述】:

我有一个 codeigniter 网络应用程序,我已经做了一个模型,它将在 cam API 上发出请求以制作打印屏幕,脚本运行良好,这是它:

<?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 一起运行以调用该模型函数?谢谢!

【问题讨论】:

  • 我想您的 cron 是从 CLI 运行的,所以只需按照 docs 中的示例进行操作即可。

标签: php codeigniter cron codeigniter-3


【解决方案1】:

你可以这样做:

 php /path_to_index/index.php Cronpicture getcronjob

或者只是做 wget 并使用一个 url

wget -O http://yoururltoload

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-12
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 2012-11-16
    • 2015-05-08
    • 2019-04-14
    相关资源
    最近更新 更多