在 python-telegram-bot 中使用 aiohttp 的 ClientSession 对象

问题描述 投票:0回答:1

我不想在 python-telegram-bot 中为每个 HTTP 请求创建会话。 我可以在 main() 中创建一个 ClientSession 对象,即使会发出警告反对这样做。另外,我不会在任何地方结束本次会议。请告知正确的做法。

from aiohttp import ClientSession
from telegram.ext import Application, CommandHandler

app_storage = {}

if __name__ == '__main__':
    app_storage['session'] = ClientSession()
    application = Application.builder().token(some_token).build()
    application.add_handler(CommandHandler('start', wake_up))
    application.run_polling()
python-asyncio aiohttp python-telegram-bot
1个回答
0
投票

您可以将对象存储在

Application.bot_data
中,并通过
context.bot_data
在每个回调中访问它 - 另请参阅 此 wiki 页面。您可能还对通过
context
 自定义 
ContextTypes
参数感兴趣。如果您想在关机时关闭会话,您可能需要使用
ApplicationBuilder.post_shutdown


免责声明:我目前是

python-telegram-bot
的维护者。

© www.soinside.com 2019 - 2024. All rights reserved.