【问题标题】:where to place cron jobs in codeigniter在 codeigniter 中放置 cron 作业的位置
【发布时间】:2018-11-30 13:37:46
【问题描述】:

我有 4 个 cron 作业要执行。目前,文件文件驻留在应用程序之外。我想把它们整理在一个文件夹中。

cron1.php 代码如下

$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");

案例 1:从浏览器调用时执行 cron 作业


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

案例2:我想要的如下:


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

-cron1.php
-cron2.php

我尝试将上面的文件放在根目录(CASE 2)中名为 crons 的文件夹中,并进行了以下代码更改。

require_once("../index.php");

执行 cron 文件作为案例 2 位置返回以下错误。

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

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

【问题讨论】:

  • require_once("../index.php");将文件移到 cron 文件夹中并如上所述更改代码。收到错误“您的系统文件夹路径似乎设置不正确。请打开以下文件并更正:index.php”

标签: php codeigniter cron codeigniter-3


【解决方案1】:

创建一个新的控制器并将其命名为 Cron.php,同时确保使用 Core CI_Controller 扩展它 比让一个函数做任何你想做的事情并像任何其他函数一样访问它,现在为它创建一个 cron 作业。

为了 cron 选项卡的安全性,不要在其中放入任何内容,例如会话或权限检查,只需在函数中放入一个 get 变量并在函数中清除它的值,然后在访问它时将值放入 url 中。这样只有你会知道 vale,如果有人想访问 cron 控制器,它会自动将他们重定向到你的登录名或你希望他们重定向的任何地方。

希望对你有帮助

【讨论】:

    最近更新 更多