如何在Web应用程序的特定日期执行某个功能?
问题描述:
我在使用php和codeigniter框架的项目。我想每3个月对数据库进行一次更改。问题是我不知道如何用PHP做到这一点。当用户访问一个页面时,我可以激活一个函数,但是我希望它在某个日期自动执行。如何在Web应用程序的特定日期执行某个功能?
答
如果您无法访问cron,只需在主页上设置一个代码来检查每个访问者的日期,并在当前日期符合模数条件时执行必要的任务。
答
设置一个cronjob,使自己的引导文件(你会调用这个文件,并把类和方法作为命令行PARAMS。
这是做(没有经过测试的快速和肮脏的方式)
// usage: php cmd.php users/cron
if (php_sapi_name() != 'cli' || count($argv) != 2) {
exit('Not enough params');
}
// Fake REQUEST_URI
$_SERVER['REQUEST_URI'] = $argv[1];
// include the index bootstrap file
require 'index.php';
名称的文件cmd.php并设置一个cron作业每月运行
用法:
cd root/to/directory && php cmd.php users/prune
这只是一个未测试例子 - 但是应该指向你在正确的方向:)
答
你居然没有,如果你有一个索引页面爬虫命中使用cron,看看你的服务器记录它没有停止。例如,如果您需要每月执行一次任务,并在下个月保存在文本文件中,那么当您获得匹配项时,请运行您的任务。把它放在一个你知道抓取器一直打开的页面中,当这个月改变它时触发你的脚本。
+0
嗨,欢迎来到堆栈溢出! OP明确指出:“我希望它在某个日期自行执行,无需用户。我的猜测是:没有爬行者。 – Stefan 2014-05-25 07:13:35
+1良好的链接,但他必须为Codeigniter编写一个命令行特定的引导程序。 – 2010-07-09 19:06:27