Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.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_Crontab - Fatal编程技术网

Php 每秒从cron运行一个脚本

Php 每秒从cron运行一个脚本,php,cron,crontab,Php,Cron,Crontab,我有一个脚本,我正在运行的浏览器与元刷新,它的工作没有任何问题,在浏览器,但它不会在cron工作,所以我可以做什么从cron运行每一秒? 我知道使用sleep我可以,但我必须在cron job中创建几个cron选项卡,每次我都必须运行脚本 使用sleep时,我如何每5秒运行一次此脚本 <meta http-equiv="refresh" content="5;url=test.php"> <?php $res = mysql_query("SELECT * FROM t

我有一个脚本,我正在运行的浏览器与元刷新,它的工作没有任何问题,在浏览器,但它不会在cron工作,所以我可以做什么从cron运行每一秒? 我知道使用sleep我可以,但我必须在cron job中创建几个cron选项卡,每次我都必须运行脚本

使用sleep时,我如何每5秒运行一次此脚本

<meta http-equiv="refresh" content="5;url=test.php">
<?php
    $res = mysql_query("SELECT * FROM tableA where st='0' order by id asc LIMIT 1");
    $row = mysql_fetch_array($res);

    $link= $row['wl'];

    function getTitle($Url){
        $str = file_get_contents($Url);
        if(strlen($str)>0){
        preg_match("/\<\/td\><\/tr\><tr\><td colspan\=2\>(.*)\<\/td\>/",$str,$title);

            return $title[1];
        }
    }
    getTitle($link);
?>


只需添加到您的crontab

* * * * * for i in {0..59}; do curl http://your.domain.zone/page.html && sleep 1; done;

添加了
for,因为cron的运行速度不能超过每分钟一次。

只需添加到crontab即可

* * * * * for i in {0..59}; do curl http://your.domain.zone/page.html && sleep 1; done;

添加了的,因为cron的运行速度不能超过每分钟一次。

cron的最小呼叫间隔为1分钟

如果您需要更频繁的通话,您有多种选择:

  • 创建一个启动的守护进程,然后在守护进程内放置 你自己的检查/睡眠等
  • 您可以侦听文件系统事件以触发对所需任务的处理
  • 您仍然可以使用meta/js结合cron来“重新加载”页面,但在这种情况下,您需要使用无头浏览器(如phantomjs)来处理页面并正确地重新加载。所以,您每分钟打开一次“页面”,页面将使用js或meta标记进行60/5=12的重新加载

  • 显然,3是最糟糕的。通常,根据您的系统要求,您可以选择(1)或(2)

    cron的最小呼叫间隔为1分钟

    如果您需要更频繁的通话,您有多种选择:

  • 创建一个启动的守护进程,然后在守护进程内放置 你自己的检查/睡眠等
  • 您可以侦听文件系统事件以触发对所需任务的处理
  • 您仍然可以使用meta/js结合cron来“重新加载”页面,但在这种情况下,您需要使用无头浏览器(如phantomjs)来处理页面并正确地重新加载。所以,您每分钟打开一次“页面”,页面将使用js或meta标记进行60/5=12的重新加载

  • 显然,3是最糟糕的。通常,根据您的系统要求,您可以选择(1)或(2)

    你知道
    mysql\u*
    函数不受欢迎,不是吗?你知道
    mysql\u*
    函数不受欢迎,不是吗?cron怎么知道必须这样做呢run@user2761874,它知道,因为它是一个调度程序。获取错误“-”:21:crontab文件中的错误命令,无法安装。这将导致延迟:脚本的执行需要一些时间,然后执行休眠1秒,依此类推;经过59次迭代后,您会注意到总执行时间可能超过1分钟,导致脚本在近距离内执行两次。@MarcelKorpel,您是对的。它必须是一个带有curl的异步调用。cron如何知道何时必须这样做run@user2761874,它知道,因为它是一个调度程序。获取错误“-”:21:crontab文件中的错误命令错误,无法安装。这将导致延迟:脚本的执行将花费一些时间,然后执行休眠1秒,依此类推;经过59次迭代后,您会注意到总执行时间可能超过1分钟,导致脚本在近距离内执行两次。@MarcelKorpel,您是对的。它必须是带有curl的异步调用。