下面是一个基本的代码示例,用于显示我运行的IRC bot的基础:
s=socket.socket()
s.connect((foo, 1234))
s.send('NICK foo\r\n')
s.send('USER foo bar baz :qux\r\n')
while True:
readbuffer=readbuffer+s.recv(1024)
temp=string.split(readbuffer, "\n")
readbuffer=temp.pop()
for line in temp:
line=string.rstrip(line)
line=string.split(line)
if(line[0]=="PING"):
s.send("PONG %s\r\n" % line[1])
这个工作很好,但是,假设我想执行一个命令,每60秒发送一条消息,我应该怎么做呢?我想这应该是异步的,在无限循环之外?在
你可以使用一个线程来异步运行它。在
一个很好的例子:http://g-off.net/software/a-python-repeatable-threadingtimer-class
是的,你可以。是的,它会在循环之外,除非你想通过每隔一段时间检查时钟来超时循环内60秒的间隔。我将设置一个间隔计时器,这样它将调用每60秒的消息函数,然后让该函数异步地发送消息,如您所说。可能会有同步(一种不同类型的同步:)与发送的问题,太好了!在
我建议阅读this article。它详细介绍了协同程序和python中的异步处理。其中包含了一堆可以使用的python代码示例。在
相关问题 更多 >
编程相关推荐