itchat 同时实现自动回复和定时任务

众所周知,itchat 实现自动回复只需要以下几行代码:

import itchat

@itchat.msg_register(itchat.content.TEXT, isFriendChat=True)
def text_reply(msg):
   pass

itchat.auto_login()
itchat.run()

这只是被动的监听消息,不能主动发送内容。

另一方面,如果想设定一个定时任务,通常要用死循环,每隔一段时间判断当前时刻,如下为整点发送消息的代码:

while(True):
    if (time.strftime("%M", time.localtime())=='00'):
        itchat.send(msg, toUser)
    time.sleep(60)

现在出现了矛盾,被动监听是个封装好的死循环,定时任务也是个死循环,怎么让他们同时实现呢?

自然想到要用多线程

import _thread
import time

global login
def keep_run(app):
    global login
    assert(login==True)
    app.run()
    login = False


itchat.auto_login()
login = True
_thread.start_new_thread(keep_run,(itchat,))

while(login):
    if (time.strftime("%M", time.localtime())=='00'):
        itchat.send(msg, toUser)
    time.sleep(60)

看完这段代码就明白了吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颹蕭蕭

白嫖?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值