如何创建一个与 telethon 的事件处理程序并行运行的异步函数?



我知道有答案。我已经搜索了一段时间,找不到它。请查看下面的代码。

import logging
import asyncio
import time
logging.basicConfig(format='[%(levelname) 5s/%(asctime)s] %(name)s: %(message)s',
level=logging.WARNING)
from telethon import TelegramClient, events

api_id = '**'
api_hash = '**'
client = TelegramClient('anon', api_id, api_hash)
async def check_message_exists(event):
time.sleep(5)
print(event, time.time())
@client.on(events.NewMessage(chats = [-100**]))
async def my_event_handler(event):
asyncio.ensure_future(check_message_exists('Got message'))    

client.start()
client.run_until_disconnected()

我希望my_event_handler()在不等待check_message_exists()结束的情况下运行。提前谢谢。

await asyncio.sleep(5)替换time.sleep(5)解决了问题。请参阅下面的完整代码。

import logging
import asyncio
import time
logging.basicConfig(format='[%(levelname) 5s/%(asctime)s] %(name)s: %(message)s',
level=logging.WARNING)
from telethon import TelegramClient, events

api_id = '**'
api_hash = '**'
client = TelegramClient('anon', api_id, api_hash)
async def check_message_exists(event):
await asyncio.sleep(5)
print(event, time.time())
@client.on(events.NewMessage(chats = [-100**]))
async def my_event_handler(event):
asyncio.ensure_future(check_message_exists('Got message'))     

client.start()
client.run_until_disconnected()

最新更新