Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为特定日期和小时创建随机分钟cron作业_Php_Cron - Fatal编程技术网

Php 为特定日期和小时创建随机分钟cron作业

Php 为特定日期和小时创建随机分钟cron作业,php,cron,Php,Cron,我一直在尝试做随机的cron工作,我选择年、月、日期和时间,但分钟是随机的 我的第一次尝试是每分钟运行一次cron,然后将随机日期与今天的日期进行比较: 我以2014-10-26 17兰特(0,59)的格式将随机日期插入数据库列fake_time。在php页面中,我每分钟运行一次cron: if($row["fake_time"] == date("Y-m-d H i")){ //do stuff } 这一切都很完美。但后来我发现我不能每分钟运行cron,因为我的hostor(host

我一直在尝试做随机的cron工作,我选择年、月、日期和时间,但分钟是随机的

我的第一次尝试是每分钟运行一次cron,然后将随机日期与今天的日期进行比较:

我以
2014-10-26 17兰特(0,59)
的格式将随机日期插入数据库列
fake_time
。在php页面中,我每分钟运行一次cron:

if($row["fake_time"] == date("Y-m-d H i")){
    //do stuff
}
这一切都很完美。但后来我发现我不能每分钟运行cron,因为我的hostor(hostgator)不允许我这样做!你有没有其他办法让我做这件事的想法



或者我应该改为在上设置吗?

如果没有技术问题,您可以使用php脚本(无需安装)


如果您认为脚本执行的频率不够高,您可以减少差异
rand(1,3)

我认为您受到一天可以运行的cron作业数量的限制,IIRC hostgator对基本计划有每日限制。为了克服这一限制,IMO,您有两个选择:

  • 转到60秒

    基本上,每天在要求的时间运行cron作业,检查您的状况,如果不是
    True
    ,则进入睡眠状态60秒

    if($row["fake_time"] == date("Y-m-d H i")){
        //do stuff
    } else {
        sleep(60);
    }
    
    这样,您就有了一个cron作业,尽管它会运行很长一段时间。如果您只能每天运行cron作业,并且希望以随机的时间和分钟运行,您可以更改逻辑,每小时睡眠进入睡眠时间
    3600
    秒,然后每分钟睡眠时间为60秒

    if($row["fake_time"] == date("Y-m-d H i")){
        //do stuff
    } else {
        sleep(60);
    }
    
    您可能需要进行相应的设置

  • 设置easycron

    如果您的cron作业因无法设置时间限制而突然终止,则需要使用
    easycron
    服务

    在本例中,将上述脚本代码放在一个php文件中,比如说
    script.php
    ,并安排一个cronjob,在该脚本上执行get请求。在本例中,您的命令将类似于

    wget your.domain.com/script.php
    

  • 这对你来说是一个很好的例子,检查一下:你的主人允许你做什么?我认为@M.Abooali评论中的解决方案应该很有效。更大的问题是-你为什么要这样做?例如,WordPress已经有了一个插件来检查网站的可用性。我是作为一篇博客文章来做这件事的。在facebook和twitter上发布。我不想让我的追随者认为我是机器人。。。我是。你的网站有多忙?如果获得一致的流量,您可以将cron全部丢弃,并使用数据库支持的队列,该队列通过用户访问提供服务。