В doc они передали цикл событий в кварту.
Необходимо вызвать асинхронный метод в обработчике маршрута.
Как поменять это на командную строку для героку?
if __name__ == '__main__':
loop=asyncio.get_event_loop()
app.run(loop=loop)
Я пытался
web: hypercorn -b 0.0.0.0:${PORT} --workers=1 telegram:app -k asyncio
Но все же получил
2019-06-22 10:00:45.047703 app[web.1]: Task <Task pending coro=<ASGIWebsocketConnection.handle_websocket() running at /app/.heroku/python/lib/python3.7/site-packages/quart/asgi.py:135> cb=[_wait.<locals>._on_completion() at /app/.heroku/python/lib/python3.7/asyncio/tasks.py:440]> got Future <Future pending> attached to a different loop
2019-06-22 10:00:45.048350 app[web.1]: Traceback (most recent call last):
2019-06-22 10:00:45.048395 app[web.1]: File "/app/tele.py", line 34, in create_contact
2019-06-22 10:00:45.048399 app[web.1]: contacts =await client2(functions.contacts.ImportContactsRequest([contact]))
2019-06-22 10:00:45.048410 app[web.1]: File "/app/.heroku/python/lib/python3.7/site-packages/telethon/client/users.py", line 60, in __call__
2019-06-22 10:00:45.048414 app[web.1]: result = await future
2019-06-22 10:00:45.048458 app[web.1]: RuntimeError: Task <Task pending coro=<ASGIWebsocketConnection.handle_websocket() running at /app/.heroku/python/lib/python3.7/site-packages/quart/asgi.py:135> cb=[_wait.<locals>._on_completion() at /app/.heroku/python/lib/python3.7/asyncio/tasks.py:440]> got Future <Future pending> attached to a different loop
Следующий вопрос для this
Как получить цикл событий из Quart
здесь говорится, что quart app.run () использует цикл событий по умолчанию, созданный asyncio для основного потока
Тогда почему они проходят цикл?