在后台启动/停止twitter流

时间:2011-05-04 18:07:16

标签: php twitter stream daemon

我正在抛弃旧问题,以便提出更好的问题。 我通过php使用twitter流api,如下面的脚本。 当我通过命令行运行它。脚本继续运行,当我按下ctrl + c时脚本停止。 多数民众赞成,但我想在后台运行它。当用户创建新搜索时,下面的脚本会被激活并保持运行,直到给出sop信号。就像cli版本一样,但在后台。

我如何实现这一目标?

好的,这是一段代码:

$opts = array(
    'http' => array(
        'method'  => 'POST',
        'content' => 'track=ipad'
    )
);

$context = stream_context_create($opts);
$stream  = fopen('http://test@stream.twitter.com/1/statuses/filter.json','r', false, $context);

while (!feof($stream)) {
    if (!($line = stream_get_line($stream, 200000, "\n"))) {
        continue;
    }

    $tweet = json_decode($line);
    // mysql query
}

我正在运行它

3 个答案:

答案 0 :(得分:0)

您可能需要查看ajax或其他网络浏览器方法,例如comet或websockets,以实现您想要的效果。

<强>更新
因此,如果您希望它在服务器端运行,您应该使用php's exec function之类的内容:

exec("php-cli runForever.php");

答案 1 :(得分:0)

这应该通过从命令行运行php脚本作为守护进程来解决,有很多事情可以解决这个问题。

  • 系统何时重启?
  • 发生错误时会发生什么?
  • 内存管理怎么样?
  • 监控怎么样?

一个好的开始是Jeroen Keppens在多个php会议上所做的演讲PHP in the dark

答案 2 :(得分:0)

我正在尝试用this tutorial做同样的事情。它使用System_Daemon pear包并提供开始/停止功能。