执行定期与Python IRC库任务(Perform tasks periodically with

2019-11-02 13:45发布

是否有办法来自动周期性任务:像发送消息给其他用户或通道等使用python irclib或基于双绞线youmomdotcom蟒蛇IRC bot的 。

基于irclib IRC客户端的实施例:

from irc import client
class OurIRCClient(client.SimpleIRCClient):
    def __init__(self):
        client.SimpleIRCClient.__init__(self)

import sys
client = OurIRCClient()

try:
    client.connect("irc.freenode.net", 6667, myUserId)
    print "connected to irc.freenode.net"
except:
    sys.exit(-1)
    "error: coouldn't connect to irc server"
client.connection.join("#django-hotclub")
client.start()

Answer 1:

如果您使用基于双绞线的解决方案,你可以简单地用一个LoopingCall安排你想调用任何周期性的方法。

(如果你使用irclib这是更难做到这一点在所有情况下正常工作的一种方式,所以我将不包括在我的答案在这里。)



Answer 2:

作为雕文指出的那样,我已经覆盖了IRC客户端类的实例方法connectionMade并使其使用LoopingCall 。

 def connectionMade(self):
        irc.IRCClient.connectionMade(self)
        task.LoopingCall(lambda : (self.msg(counterpartID, "hi there"))).start(5.0)


文章来源: Perform tasks periodically with python irc library