在cignigner中将cron作业放置在哪里

时间:2018-06-21 09:17:39

标签: php codeigniter cron codeigniter-3

我有4个cron作业要执行。当前,文件文件位于应用程序外部。我想将它们整理在一个文件夹中。

下面的cron1.php代码

情况1:从浏览器调用cron作业时会执行

  

root
  -应用程序/
  -index.php
  -css /
  -js /
  -cron1.php
  -cron2.php

案例2:我想要的方式如下:

  

root
  应用程序/
  -index.php
  -css /
  -js /
  -crons /

     
    

-cron1.php
    -cron2.php

  

我尝试将上面的文件放在root(案例2)中应用程序外部的名为crons的文件夹中,并进行以下代码更改。

$argc = $_SERVER['argc'];
$argv = $_SERVER['argv'];
// INTERPRETTING INPUT
if ($argc > 1 && isset($argv[1])) {
$_SERVER['PATH_INFO']   = $argv[1];
$_SERVER['REQUEST_URI'] = $argv[1];
} else {
$_SERVER['PATH_INFO']   = '/cron/clearuserloghistory';
$_SERVER['REQUEST_URI'] = '/cron/clearuserloghistory';
}
require_once("index.php");

将cron文件作为案例2的位置返回到错误下方。

  

您的系统文件夹路径似乎没有正确设置。请打开以下文件并更正此文件:index.php

请建议一个正确的位置,以便在cron文件夹中包含cronfiles。提前致谢。

1 个答案:

答案 0 :(得分:0)

创建一个新的Controller并命名为Cron.php之类的名称,并确保使用Core CI_Controller对其进行扩展 而不是让一个函数执行您想要的任何事情并像访问其他任何函数一样访问它,现在为它创建一个cron作业。

为了确保cron选项卡的安全性,请不要在

中添加任何内容,例如会话或权限检查,只需在函数中放入get变量,然后在函数中清除它的值,然后在访问它时就将其值放在url中。这样,只有您才能知道该vale,并且如果有人想访问cron控制器,它将自动将其重定向到您的登录名或您想重定向的任何地方。

我希望它将对您有帮助