每秒都从cron运行一个脚本

时间:2013-10-26 11:22:54

标签: php cron crontab

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

有睡眠我怎么能每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);
?>

2 个答案:

答案 0 :(得分:8)

只需添加到您的crontab

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

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

答案 1 :(得分:1)

cron的最短通话间隔为1分钟

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

  1. 创建一个启动的守护进程,然后在守护进程内放置 你自己的检查/睡觉等。
  2. 您可以侦听文件系统事件以触发处理您需要的任何任务
  3. 您仍然可以使用meta / js来“重新加载”cron的组合页面,但在这种情况下,您需要使用无头浏览器(如phantomjs)来处理页面并正确重新加载。因此,您将每分钟打开一次“页面”,页面将使用js或元标记进行60/5 = 12重新加载。
  4. 显然3是最差的。通常你会选择(1)或(2),具体取决于你的系统要求。