每隔60秒异步地做一件事

2024-10-01 13:35:31 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是一个基本的代码示例,用于显示我运行的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秒发送一条消息,我应该怎么做呢?我想这应该是异步的,在无限循环之外?在


Tags: 代码send示例stringfooircbotconnect
3条回答

你可以使用一个线程来异步运行它。在

一个很好的例子:http://g-off.net/software/a-python-repeatable-threadingtimer-class

是的,你可以。是的,它会在循环之外,除非你想通过每隔一段时间检查时钟来超时循环内60秒的间隔。我将设置一个间隔计时器,这样它将调用每60秒的消息函数,然后让该函数异步地发送消息,如您所说。可能会有同步(一种不同类型的同步:)与发送的问题,太好了!在

我建议阅读this article。它详细介绍了协同程序和python中的异步处理。其中包含了一堆可以使用的python代码示例。在

相关问题 更多 >