Python 我的Jabber机器人卡住了--如何阻止消息发送?

Python 我的Jabber机器人卡住了--如何阻止消息发送?,python,Python,我有自己的jabber机器人,今天我制作了一个新插件,它可以为所有用户发送消息。我的代码运行良好,但我有一个小问题;当我给我的机器人发送消息的命令时,我的机器人卡住并断开连接 我知道我的机器人为什么会卡住和断开连接;我有2000多个用户,因此我的机器人无法同时为所有用户发送消息。Python中是否有任何方法可以让我的代码在N秒后为每个用户发送消息?我的意思是让bot为user1发送消息,然后等待N秒并为user2发送消息,等等 我希望我的想法是清楚的。这是我的代码: def send_msg(t

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

我知道我的机器人为什么会卡住和断开连接;我有2000多个用户,因此我的机器人无法同时为所有用户发送消息。Python中是否有任何方法可以让我的代码在N秒后为每个用户发送消息?我的意思是让bot为user1发送消息,然后等待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')

我相信您正在寻找
时间。睡眠(秒)

暂停执行给定的秒数。这个论点可能是正确的 表示更精确睡眠时间的浮点数。这个 实际暂停时间可能小于请求的时间,因为 捕获的信号将在执行该命令后终止sleep() 信号捕捉程序。此外,暂停时间可能更长 由于调度的原因,请求的数量超过了任意数量 系统中的其他活动


每次发送后,您可以延迟
时间。在发送下一条消息之前,请先睡眠(秒)

您好,我知道时间。睡眠(x)但每次发送消息后我不需要睡眠我的程序。这不是问题。我需要为user1发送消息,然后我的程序睡眠X秒,然后为user2发送消息,诸如此类。。我有超过2000个用户,所以我的机器人不能同时为2000个帐户发送一条消息。这就是我需要的。听起来是一样的。如果您在发送或回复后放置一个time.sleep(x),它就是这样做的。我尝试了它,我也会遇到同样的问题,但当我为15个用户发送时,它也会工作,但如果用户超过15个,它就会卡住。无法编辑您的代码,这会更改您的问题。:)我会在你的
for
循环中的
reply
之后进行睡眠。这将发送消息,发布您的回复,然后等待您指定的任何时间。如果你那样做了,你确定这是你的问题吗?是的,我喜欢这样。我在回复后进入睡眠状态&机器人又被卡住了。