Ваша функция main
является подпрограммой, и состояние подпрограммы удерживается. Перезапуск того же самого, вероятно, не очень хорошая идея. Вам нужны две функции: подпрограмма main
и обычная функция main, которая обрабатывает создание новой подпрограммы и ее повторное выполнение.
async def amain():
# Lot of code
def main():
while True:
try:
asyncio.run(amain())
except KeyboardInterrupt:
break
except Exception as e:
log(e)
Что-то в этом роде.