gpt4 book ai didi

php - 如何调试 cron 作业 - codeigniter 3

转载 作者:太空宇宙 更新时间:2023-11-03 11:41:07 24 4
gpt4 key购买 nike

我的 cron 作业从 godaddy 共享服务器正确触发:

wget `http://www.domain/APP/index.php?/cron_jobs/cron_job_TEST`

cron 结果中没有返回错误:

HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `index.php?%2Fcron_jobs%2Fcron_job_TEST'

我将测试设置为写入文本文件 - 以及写入数据库表。

当我测试它时 - 通过访问 URL - http://www.domain/APP/index.php?/cron_jobs/cron_job_TEST文本文件和表格已正确写入。

但是当 cron 运行时 - 文本文件或数据库表没有结果。

Controller /功能“cron_jobs/cron_job_TEST”:

// CRON_1
public function cron_job_TEST(){

file_put_contents("test_cron_job.txt", "cron_job_TEST-> ".date('l jS \of F Y h:i:s A') . "\n", FILE_APPEND);


$this->db->query("INSERT INTO `TEST_CRON` (`ID`, `DATE`) VALUES ('', NOW());");


}// END CRON_1

我也尝试过 /web/cgi-bin/php5 $HOME/html/ 方法,但没有成功。我认为 wget 的意义在于它的行为就像您正在访问 URL 一样。

这里可能出了什么问题?

我该如何调试?

最佳答案

与其使用 wget 从 Web 服务器获取文件,不如通过在 codeigniter 的 index.php 文件上调用 PHP 直接从命令行执行命令:

php /path/to/your/project/html/index.php cron_jobs/cron_job_TEST

如果您以这种方式执行您的 codeigniter 应用程序,您应该能够看到输出以及在执行过程中可能出现的错误。

我还建议从您的 cron 方法编写一个日志文件,以便您可以输出值,如果您够聪明,请确定您的代码的哪些分支正在执行。

编辑:您还可以更改您的 cron 作业,无论您选择哪种方法,都可以将 cron 作业的输出路由到一个文件中,这样您可能会对发生的事情有一些线索:

wget `http://www.domain/APP/index.php?/cron_jobs/cron_job_TEST` > /path/to/file.txt

编辑:我想你也可以像这样将 stderr 和 stdout 路由到同一个文件

wget `http://www.domain/APP/index.php?/cron_jobs/cron_job_TEST` &> /path/to/file.txt

显然,如果文件已经存在,则拥有此 cron 作业的用户必须有权写入该输出文件,或者如果文件不存在,则必须有权写入该目录。

一旦 cron 作业运行,您可能能够查看此文件并更好地了解发生了什么。

关于php - 如何调试 cron 作业 - codeigniter 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41581485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com