我有自己的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')
答案 0 :(得分:0)
我相信你正在寻找time.sleep(secs)
。 From the docs:
暂停执行指定的秒数。争论可能是 浮点数表示更精确的睡眠时间。该 实际停工时间可能少于所要求的,因为任何 捕获信号将在执行后终止sleep() 信号的捕捉程序。此外,暂停时间可能更长 由于调度而导致的任意金额要求 系统中的其他活动。
每次发送后,您可以在发送下一条消息之前延迟time.sleep(seconds)
。