【问题标题】:Fetch data every n minutes using PHP使用 PHP 每 n 分钟获取一次数据
【发布时间】:2013-03-14 02:12:42
【问题描述】:

如何每 5 分钟获取指定 URL 的共享数量?

这是我从 twitter 获取分享数量的代码:

function twittershares($url) {

 $s = file_get_contents("http://urls.api.twitter.com/1/urls/count.json".
 "?callback=?&url=".urlencode($url));

 preg_match("#(\"count\"):([0-9]*)#",$s,$ar);

 return isset($ar[2]) ? $ar[2] : 0;
 }

 echo twittershares("http://abc1234.com");

谢谢

【问题讨论】:

  • 您也可以每隔 5 分钟从 Ajax 调用此函数。
  • @Voitcus,这意味着,您必须保持浏览器打开。
  • @Guntis 我知道,我期待他想用这个值更新他的页面。
  • @Voitcus,我将使用数据库中的更新值,所以它应该在后端工作。

标签: php


【解决方案1】:

您将要设置一个 cron job 以每 x 分钟运行一次 - 无论您想要什么 - cron 作业将调用您的脚本,该脚本将在该时间间隔运行您想要的代码。

这是我刚开始学习时使用的教程:Tutorial on setting up cron job

最后一次编辑,这是您的 cron 作业的 URL 可能的样子:

wget -N http://yoursite.com/yourscript.php

【讨论】:

    【解决方案2】:

    你有两个使用纯 php 的选项 1.Cron 作业,比如 ppl 已经写过或 2. 更奇特的东西,writing a small php daemon,以防您需要提出要求 同时访问多个网址。

    【讨论】:

    • 我有很多链接要跟踪 php 守护进程会更好还是有其他方法可以一次处理大约 350 个请求?
    • 那么,你最好创建一个分布式系统,有一些像rabbitmq这样的队列,这里有一个教程rabbitmq.com/tutorials/tutorial-two-python.html,它是用于python的,但也有一个php客户端