使用CodeIgniter设置定时任务

3

我有一个想要通过cron执行的函数。如果我只是访问url www.example.com/TestProjects/codeigniter/controller/function

这个函数可以正常运行,但如果我把它设置为cron任务就无法工作。

我尝试将其设置为:

public_html/TestProjects/codeigniter/controller/function

并且会通过以下错误信息来表示

public_html/TestProjects/codeigniter/controller/function: Not a directory

请问有人可以帮我设置这个定时任务吗?


一个选择是将 curl whatever > /dev/null 添加到您的 crontab 中。 - georg
4个回答

2

首先尝试在CLI模式下运行该控制器方法。在控制台中,进入您的项目目录,然后以CLI模式运行脚本:

    cd TestProjests/codeigniter
    php index.php controller function

如果这个可以运行,就将同一行插入到crontab中,但要使用绝对路径:

    php /path_to_your_projects/TestProjests/codeigniter/index.php controller function

这也可以帮助你: https://ellislab.com/codeigniter/user-guide/general/cli.html

http://nztdemo.com/TestProjects/ERP/cron/index 这是实际路径,您能否为我创建一个cron路径? - Deepak Sharma
php /path_to_your_projects/TestProjests/ERP/index.php cron index(假设Codeigniter已安装在ERP目录中,“cron”是您控制器类的名称,而“index”则是其中的一个方法) - maicher

2

1
路径public_html/TestProject/...几乎可以确定是从您的用户目录开始的相对路径。您可以在cron中使用wget访问该URL:
* * * * * wget http://www.example.com/cronscript > /dev/null

将上面的时间更改,让其运行所需时间


这是我的实际路径:http://nztdemo.com/TestProjects/ERP/cron/index,请帮忙。 - Deepak Sharma
好的,将 http://www.example.com/... 替换为 http://nztdemo.com/... ;) 当然我假设你知道如何创建或编辑 crontab。 - giorgio

-1
使用系统路径到文件名和函数名之后加上空格来执行,应该像这样:
php /var/www/path/to/controller/classFile functionName

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接