我的Jabber机器人卡住了 - 如何限制邮件发送?

时间:2014-05-20 19:53:59

标签: python

我有自己的jabber机器人,今天我制作了一个新的插件,即为所有用户发送消息。我的代码运行良好,但我有一个小问题;当我给我的机器人命令发送消息时,我的机器人卡住并断开连接。

我知道为什么我的机器人会卡住并断开连接;我有超过2000个用户,因此我的机器人不能同时为所有用户发送消息。 Python中是否有任何方法使我的代码在N秒后为每个用户发送消息?我的意思是让机器人为user1发送MSG,然后等待N秒并发送给user2等等。

我希望我的想法很清楚。这是我的代码:

def send_msg(type, source, parameters):
    ADMINFILE = 'modules/xmpp/users.cfg'
    fp = open(ADMINFILE, 'r')
    users = eval(fp.read())
    if parameters:
        for z in users:
            msg(z, u"MSG from Admin:\n" +parameters)
            reply(type, source, u"MSG has been sent!")
        else:
            reply(type, source, u"Error! please try again.")


register_command_handler(send_msg, 'msg', ['all','amsg'], 0,'Sends a message to all users')

1 个答案:

答案 0 :(得分:0)

我相信你正在寻找time.sleep(secs)From the docs

  

暂停执行指定的秒数。争论可能是   浮点数表示更精确的睡眠时间。该   实际停工时间可能少于所要求的,因为任何   捕获信号将在执行后终止sleep()   信号的捕捉程序。此外,暂停时间可能更长   由于调度而导致的任意金额要求   系统中的其他活动。

每次发送后,您可以在发送下一条消息之前延迟time.sleep(seconds)