task-и помещаются в set(task автоматически удаляется из set-а при завершении). Когда в task-е возникает исключение(например CancelledError), выполняется некоторый код(закрывается соединение, логи, и т.д.). В случае остановки сервера, оставшиеся task-и закрываются вот так:
for task in self._pending.copy():
task.cancel()
await task
Что может пойти не так? Насколько это плохо/хорошо?
У фьюч есть колбэки, вызывающиеся при её завершении. Таски наследники фьюч
Ты про task.add_done_callback(self._pending.discard)? Не совсем понял.
А, я не так вопрос понял. Да, в целом всё так, но это по хорошему должен делать asyncio.run, а не ты сам
да ему надо выкинуть самодельный протокол и взять что-то более аджекватное, но они не хотят нанимать прогарммиста
Действительно.. Спасибо.
Вряд ли уберсложно зная питон, поправить клиент не на ФП языке. Зачем тут отдельный программист?
После уберсложно нужна запятая, сложно с первого раза правильно прочитать
Обсуждают сегодня