说我想要一个php脚本运行函数itstime()每小时。除了在服务器上设置cron作业,我该怎么做?基于时间的php脚本
或者这是不可能的,因为PHP脚本需要打开才能运行?
谢谢。
编辑:我想写一些信息到一个日志文件,并根据一些变量发送它在一封电子邮件。
说我想要一个php脚本运行函数itstime()每小时。除了在服务器上设置cron作业,我该怎么做?基于时间的php脚本
或者这是不可能的,因为PHP脚本需要打开才能运行?
谢谢。
编辑:我想写一些信息到一个日志文件,并根据一些变量发送它在一封电子邮件。
那么,我绝对推荐为此目的的cron工作。但理论上,您可以运行一个PHP脚本,运行itstime()
,休眠一个小时,然后循环。虽然这很疯狂。
该脚本看起来像:
<?php
include('whatever.php');
while(true) {
itstime();
sleep(3600);
}
?>
一个可能会与nohup php mycrazyscript.php &
运行它从你的终端分离并使其继续运行,并使用pkill -f mycrazyscript
终止它。
这是疯狂的原因是,现在你已经有一个睡眠PHP进程挂在每小时59分钟无所事事,你必须确保它在正确的时间运行和运行,哪个cron会照顾你的。
只追加混乱的答案,所以给他信用。
mrlanrat - 见this
如果您没有访问cron的,但有机会获得适度繁忙的Web服务器,你可以用它来触发每隔一小时你的函数。这就是WordPress需要cron的方式。这里是你将如何做到这一点:
<?php
$lastrun = get_last_run_time(); // get value from database or filesystem
if(time()-$lastrun > 60*60) {
itstime();
set_last_run_time(time()); // write value back to database or filesystem
}
// The rest of your page
?>
当然,有一个非常严重的竞争状态在这个代码是。解决这个问题留给读者。
https://www.setcronjob.com/和various other sites,为此提供基于网络的解决方案。你可以设置它来调用你的代码每小时或任何你想要的代码的脚本
<?php
itstime();
?>
我该怎么做?为什么你说它疯了? – lanrat 2009-07-22 02:49:17
是肯定不是我选择的方法,但如果cron不是一种选择,可能是唯一的选择。 – Christian 2009-07-22 02:49:38
如果我使用这种方法意味着当我访问这个页面(要启动脚本)它将永远不会完成加载? 如果是这种情况,脚本会在页面退出后停止运行? – lanrat 2009-07-22 02:56:28