[英]How to run a PHP script in every 5-10 minutes without cron, perl etc?
我想在服务器上每5分钟运行一次脚本。 我没有任何类型的管理权限来做cron job等。
我不是很好的php程序员,所以这个问题可能看起来很奇怪,但如果你理解,请告诉我一个解决方案。
听起来你唯一的解决方案就是“穷人的Cron”。
您所做的是创建一个脚本,放置在每隔5分钟运行一次的每个页面上。 但不保证每5分钟运行一次。 因为它需要有人访问“穷人的cron”的页面,如果没有人访问超过5分钟,那么它将无法运行,直到有人这样做。
一些示例代码:
<?php
// load the last run time from a file, database, etc
if(time() >= $last_run + (60 * 5)) { // 60 * 5 is 5 minutes
// do your task here
// save the last run time to a file, database, etc
}
我使用webcron.org这是一个经济实惠的在线服务。 对我来说,优势在于我可以在所有服务器上概览所有计划任务。
这是另一个'黑客'。 由于你无法在脚本所在的机器上运行cron,也许你可以在另一台机器上运行cron。
如果你可以...设置一个cron作业每5分钟运行一次......作业可以是一个简单的PHP脚本,可以调用你的其他PHP脚本。 您可以使用cURL “调用”您的脚本(如果该脚本由Web服务器提供)
(已编辑以包含链接中的内容。)
cron
)。 它可以解析crontab文件并将作业调度定义提取到MySQL数据库表中。 当需要运行预定作业时,它会将crontab定义中的作业命令作为PHP代码作为单独的进程执行。 作业PHP代码的输出也存储在数据库表中。 我的解决方案,如果你的服务器是Linux 制作bash脚本:
#bin/bash
while [ true ]
do
//do whatever you want, use curl, lynx to your page...
sleep 5m
done
运行它,如果您的服务器不会重新启动或脚本不会被杀死,你会没事的。
这个不是很好的解决方案,但有效。
这就是我的方式
if(date('i', time())%5==0) {
// run this code
}
就像是:
ini_set('max_execution_time', 'sometime');
while(1){
//do something
sleep(sometime);
}
虽然我不建议这样做。 是时候搬到满足您需求的服务器了。
我相信这些工具可以帮助您满足您的要求:
SetCronJob - www.setcronjob.com
Cronless - cronless.com
EasyCron - www.easycron.com
在线Cron Jobs - www.onlinecronjobs.com
Corntab - www.corntab.com
getCron - www.getcron.com
但是,依赖其他网站并不是一个好主意。
坦克到谷歌
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.