繁体   English   中英

如何在没有cron,perl等的情况下每5-10分钟运行一次PHP脚本?

[英]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服务器提供)

看到这个这个


(已编辑以包含链接中的内容。)

  • PHP Cron守护进程由数据库驱动,以安排任务的执行(如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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM