mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-07-20 21:57:14 +08:00
fix: retry when send failed
This commit is contained in:
@@ -225,7 +225,8 @@ class WechatChannel(Channel):
|
|||||||
thread_pool.submit(self.handle, context).add_done_callback(thread_pool_callback)
|
thread_pool.submit(self.handle, context).add_done_callback(thread_pool_callback)
|
||||||
|
|
||||||
# 统一的发送函数,每个Channel自行实现,根据reply的type字段发送不同类型的消息
|
# 统一的发送函数,每个Channel自行实现,根据reply的type字段发送不同类型的消息
|
||||||
def send(self, reply: Reply, receiver):
|
def send(self, reply: Reply, receiver, retry_cnt = 0):
|
||||||
|
try:
|
||||||
if reply.type == ReplyType.TEXT:
|
if reply.type == ReplyType.TEXT:
|
||||||
itchat.send(reply.content, toUserName=receiver)
|
itchat.send(reply.content, toUserName=receiver)
|
||||||
logger.info('[WX] sendMsg={}, receiver={}'.format(reply, receiver))
|
logger.info('[WX] sendMsg={}, receiver={}'.format(reply, receiver))
|
||||||
@@ -249,6 +250,11 @@ class WechatChannel(Channel):
|
|||||||
image_storage.seek(0)
|
image_storage.seek(0)
|
||||||
itchat.send_image(image_storage, toUserName=receiver)
|
itchat.send_image(image_storage, toUserName=receiver)
|
||||||
logger.info('[WX] sendImage, receiver={}'.format(receiver))
|
logger.info('[WX] sendImage, receiver={}'.format(receiver))
|
||||||
|
except Exception as e:
|
||||||
|
logger.error('[WX] sendMsg error: {}, receiver={}'.format(e, receiver))
|
||||||
|
if retry_cnt < 2:
|
||||||
|
time.sleep(3+3*retry_cnt)
|
||||||
|
self.send(reply, receiver, retry_cnt + 1)
|
||||||
|
|
||||||
# 处理消息 TODO: 如果wechaty解耦,此处逻辑可以放置到父类
|
# 处理消息 TODO: 如果wechaty解耦,此处逻辑可以放置到父类
|
||||||
def handle(self, context):
|
def handle(self, context):
|
||||||
|
|||||||
Reference in New Issue
Block a user