在aiogram的handlers函数中添加try-except语句来捕获所有异常并重新启动handlers。
代码示例:
import logging
from aiogram.dispatcher import Dispatcher
dp = Dispatcher(bot)
def some_handler(message):
# handler code here
pass
def start_bot():
try:
# start the bot
dp.register_message_handler(some_handler)
dp.start_polling()
except Exception as e:
logging.exception(e)
# re-register the handler
dp.register_message_handler(some_handler)
# restart the bot
start_bot()
这种方法在handlers挂掉后会自动重新启动,从而避免了日志记录带来的中断。