我的POE :: Component :: IRC事件循环是否卡住?

时间:2015-08-12 09:43:08

标签: perl poe

我的任务是编写一个IRC机器人,它将在这里加入内部IRC系统的频道,并将消息发布到似乎不再使用的频道,警告任何潜在用户该频道即将成为退役。我们的IRC系统有大约6,500个频道需要发布这些消息,我们使用的IRC服务器(一个定制的Hybrid分支)将并发通道连接限制为每个连接100个。为了不达到这个限制,我得到的代码就是:

if ($channel_list->{$channel}{joined}) {
    # If we're already joined, privmsg immediately
    $logger->info("Trying to message $channel");
    $data_entry->notified('true');
    $data_entry->update;
    $irc->yield(privmsg => $msg_channel, $message);
    $irc->yield(part => $msg_channel);
} else {
    # Otherwise join, and let the join event do the privmsg and part
    $logger->info("Trying to join $channel");
    $data_entry->notified('true');
    $data_entry->update;
    $irc->yield(join => $msg_channel);
}

即。它会看到我们是否已经加入,如果我们已经加入,请尝试发布通知消息,然后立即分开。如果我们没有加入,它会尝试首先加入(并且加入事件将触发发送的消息)。

问题是代码似乎永远不会运行

$irc->yield(part => $msg_channel);

行,最后我开始从IRC服务器返回irc_405事件,说代码加入了太多频道。任何人都知道我做错了什么?

0 个答案:

没有答案