我想在服务器上每5分钟运行一次脚本。我没有任何类型的管理权限来做cron job等。
我不是很好的php程序员,所以这个问题可能看起来很奇怪,但如果你理解,请告诉我一个解决方案。
答案 0 :(得分:16)
听起来你的唯一解决方案就是“穷人的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
}
答案 1 :(得分:15)
我使用webcron.org这是一种经济实惠的在线服务。对我来说,优势在于我可以在所有服务器上概览所有计划任务。
答案 2 :(得分:11)
这是另一个'黑客'。由于你无法在脚本所在的机器上运行cron,也许你可以在另一台机器上运行cron。
如果你可以...设置一个cron作业每5分钟运行一次......作业可以是一个简单的PHP脚本,可以调用你的其他PHP脚本。您可以使用cURL来“调用”您的脚本(如果该脚本由Web服务器提供)
答案 3 :(得分:3)
(已编辑以包含链接中的内容。)
cron
)。它可以解析crontab文件并将作业调度定义提取到MySQL数据库表中。当需要运行预定作业时,它会将crontab定义中的作业命令作为PHP代码作为单独的进程执行。作业PHP代码的输出也存储在数据库表中。答案 4 :(得分:2)
我就是这样做的
if(date('i', time())%5==0) {
// run this code
}
答案 5 :(得分:1)
类似的东西:
ini_set('max_execution_time', 'sometime');
while(1){
//do something
sleep(sometime);
}
虽然我不建议这样做。是时候搬到满足您需求的服务器了。
答案 6 :(得分:1)
我确定这些工具可以帮助您处理您的请求:
SetCronJob - www.setcronjob.com
Cronless - cronless.com
EasyCron - www.easycron.com
在线Cron Jobs - www.onlinecronjobs.com
Corntab - www.corntab.com
getCron - www.getcron.com
然而,从其他网站上依赖并不是一个好主意。
坦克到 Google
答案 7 :(得分:1)
我的解决方案,如果您的服务器是Linux。制作bash脚本:
#bin/bash
while [ true ]
do
//do whatever you want, use curl, lynx to your page...
sleep 5m
done
运行它,如果你的服务器不会重启或脚本不会被杀死你就没事了。
这个不是一个好的解决方案,但有效。
答案 8 :(得分:0)