在后台启动/停止twitter流



我要用一个更好的表述问题来抛弃旧问题。我使用twitter流api通过php像下面的脚本。当我通过命令行运行它时。脚本继续运行,当我按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
}

我正在运行它

这应该通过从命令行运行php脚本作为守护进程来解决,有很多事情要考虑。

  • 系统重启时怎么办?
  • 错误发生时怎么办?
  • 内存管理呢?
  • 监控呢?

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

您可能需要查看ajax或其他web浏览器方法,如comet或websockets来实现您想要的。


如果你想让它在服务器端运行你应该使用php的exec函数比如:

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

我试图在本教程中做同样的事情。它使用System_Daemon pear包并提供启动/停止函数。

相关内容

  • 没有找到相关文章

最新更新