Codeigniter的CRON任务

8
我正在使用CodeIgniter。我想知道如何设置定时任务来检查一个表格的到期用户,并将有到期用户列表的数据插入到另一个表格中。请教如何操作。
当我尝试编写带有控制器和模型的脚本来插入表格时:

致命错误:第2行/home/content/html/test/live/application/controllers/cron.php中未找到“Controller”类


2
那么问题是cron部分还是codeigniter部分? - Adam Kiss
为什么需要将一张表的数据插入到另一张表中? - Randell
CRON?像是一个缩写吗?还是只是为了明确我们不是在谈论你日常的工作? - Matchu
4个回答

4

2
这可能不是您所寻找的内容,但对我而言它很有效:创建CRON作业逻辑作为“正常”的控制器函数。然后,在您的标准非CI PHP cronjob文件中,只需通过加载URL来执行它。
file_get_contents('http:example.com/cronjob/');

这将使URL被视为像其他用户一样访问,整个CI框架都可供使用。

如果您希望将cron作业的逻辑暴露在网络上,那么这是可以的,否则就不太好了。CI提供了通过CL执行的机制,这是有原因的。 - Madbreaks
1
那么“暴露逻辑”具体是如何实现的呢?它只是允许其他人调用相同的过程。如果这是一个问题,您可以向请求添加签名或仅允许从其自己的IP进行调用。 - Rid Iculous
1
只因为某种方法“可行”并不代表这是正确的方式。你会用表格来布局HTML页面吗?你会倒车去商场吗?你会用带信鸽与邻居交流吗?关键在于,有一个正确的方式(使用CI为任务提供的工具),而其他方式则不然。其他方式可能也能够工作,但它们并非最佳选择……这可以从需要通过额外的步骤(如IP白名单)来解决问题来证明。祝你好运! - Madbreaks
我同意Rid Iculous的观点,这对某些人来说可能是一个不错的解决方案。机器人可以针对您应用程序的任何部分...在这种情况下,您可以在服务器级别上将其IP列入黑名单。只要您的Cron不公开敏感信息,我在技术上并不认为有任何问题。CLI是“正确”的方法,但这种方法也可以工作。根据您特定应用程序的要求进行选择。 - Pepper
虽然应该是file_get_contents();,但我猜那是上面的一个打字错误。 - Pepper
显示剩余5条评论

1

-2

我的托管网站是Godaddy,它提供了创建cron的选项。我们只需要编写一个普通的PHP页面来完成工作,包括SQL连接和所有必要的内容,然后上传到Godaddy服务器并创建cron。就这样,工作变得更加容易。


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