我知道有答案。我已经搜索了一段时间,找不到它。请查看下面的代码。
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()