恐怕这行不通,因为它是刷新页面的浏览器功能。
问题:为什么不能将 cron 作业设置为比每 5 分钟更频繁地运行一次?
如果没有其他选择,那么您可以创建自己的守护进程来更频繁地完成这项工作。
例如,您的 php 脚本可以:
- 跑
- 等待 60 秒
- 跑
- (等待;运行;再过两次)
- 出口
例如:(通过sshow代码的变体)
<?php
$secs = 60;
ignore_user_abort(true);
set_time_limit(0);
dostuff();
sleep($secs);
dostuff();
sleep($secs);
dostuff();
sleep($secs);
dostuff();
sleep($secs);
dostuff();
?>
这个版本的脚本会驻留四分钟,执行代码 4 次,相当于每分钟运行一次,如果这个脚本是由 cron 每 5 分钟运行一次的话。
关于 cronjob 是什么以及它是如何运行的似乎有些混乱。
cron是一个守护进程,它位于后台,并按照crontab中指定的时间表通过 shell 运行任务。
每个用户都有一个 crontab,还有一个系统 crontab。
每个用户的 crontab 都可以指定以该用户身份运行的作业。
例如:
# run five minutes after midnight, every day
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
# run at 2:15pm on the first of every month -- output mailed to paul
15 14 1 * * $HOME/bin/monthly
# run at 10 pm on weekdays, annoy Joe
0 22 * * 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?%
23 0-23/2 * * * echo "run 23 minutes after midn, 2am, 4am ..., everyday"
5 4 * * sun echo "run at 5 after 4 every sunday"
所以每五分钟运行一次:
*/5 * * * * echo "This will be run every five minutes"
或者每分钟运行一次:
* * * * * echo "This will be run every minute"
命令的输出通过电子邮件发送给 crontab 的所有者(或由 MAILTO 指定)。这意味着,如果您每分钟运行一次,它将每分钟向您发送电子邮件,除非您确保所有正常输出都被抑制或重定向。
这些命令以拥有 crontab 的用户身份运行,这与网络服务器运行的脚本形成对比,后者以“nobody”用户身份运行(或类似的——无论网络服务器配置为以何种身份运行)。如果 cronjob 正在写入应该由 Web 服务器运行的脚本访问的文件,这会使生活变得更加复杂。基本上,您必须确保权限保持正确。
现在,我不确定这是您所指的系统。如果您的意思是其他意思,cronjob
则上述内容可能不适用。
如果您想做一些当前主机不允许您做的事情,那么与其绕过限制,您可能会考虑更换托管服务提供商?
另一种方法是将脚本放在您的正常脚本位置,并让一些外部调度程序以您喜欢的任何频率对其运行 wget。
另一种选择是按需更新vartec建议的形式。但是,这可能无法解决您的问题。