2014-05-15 94 views
1

我使用AnyEvent::Twitter::Stream来编写Twitter bot。我是基于事件编程的新手,所以我非常依赖文档。使用AnyEvent保持流式:: Twitter :: Stream

由于这是一个机器人,我想让这个数据流继续前进,不受监督,当出现错误时(例如管道损坏或超时错误)。

如果我根本不包含错误处理程序,则整个程序将因错误而死亡。同样,如果我使用类似示例文档中的错误处理程序:

on_error => sub { 
    my $error = shift; 
    warn "Error: $error"; 
    $done->send; 
}, 

该程序死亡。如果我删除“$ done-> send”;行,流被中断,程序挂起。

我已经看过AE :: T :: S和AnyEvent的(稀疏)文档,但我不确定我需要做些什么来保持事情的进行。流可以给我一分钟5,000个事件,我不能失去这个随机网络打嗝。

谢谢。

回答

0

为别人解决方案使用此:

我说话的人更了解基于事件的东西。基本上,每个:: Stream对象代表一个到Twitter的HTTP请求;当该请求消失时,这是流的结束。 on_error方法在这一点上被调用,所以它只是给你一个地方说流的结束,为了日志的目的或其他。此方法不允许您重新启动流。

如果你想机器人继续玩下去,你有,无论是由具有OS重新启动程序,或者只是包装程序的整体在一段时间(1){}循环来创建一个新的流。

希望这可以帮助别人!

相关问题