在PHP中执行脚本作为守护进程

时间:2013-12-22 07:43:51

标签: php bash

这个脚本在我的php页面javascript中,在页面加载时被调用:

<script type="text/javascript">
        var id =0;
        function getData(){    
        $.ajax({
              url       : "refresh.php",
              type      : "POST",
              data      : {"id" : id},            
              success   : function(data) {
                 $(".show").html(data);
              }
          });
    }
        $(document).ready(function(){
      setInterval("getData()",36000);//Polls in every x sec
    });
    </script>   

refresh.php执行我的实际流程,我希望每1小时执行一次

有什么方法让refresh.php在每个小时自动执行?

refresh.php

<?php
    error_reporting(E_ERROR | E_PARSE);
    $feedUrl = "http://api.frrole.com/v1/curated-content?location=India&contenttype=link&orderby=popularity&apikey=wmqmz15svzH8qSy5yQuF52b068a40a69e";
    $json = file_get_contents($feedUrl);
    $code = json_decode($json,true);

    foreach($code as $arr)
    {
    foreach($arr as $k=>$v)
    {
    echo $arr[$k]['title']."<br>";
    echo $arr[$k]['city']."<br>";
    //inserts this vvalue in db
    echo "<br>";
    }
    }

&GT;

我已经看到了execute php script in background om Google

的所有结果

显示如下解决方案:

  1. nohup php myscript.php &

    但是nohup有一些问题

  2. 2。

    exec("/bin/bash -c '/usr/bin/php /path/to/child.php 2> /dev/null' &");

    和其他

    我很困惑。哪一个是正确的方法呢?

2 个答案:

答案 0 :(得分:1)

如果您希望脚本每小时自动执行一次,您可能需要调查cron。大多数Web主机至少通过其控制面板提供cron服务。

答案 1 :(得分:1)

如果您使用的话,请使用crontab -e 然后每小时输入一次

  

0 * * * * / bin / php /your_path/refresh.php

然后保存文件

  

:WQ