У меня есть телеграмм-бот, написанный на python, который позволяет пользователям создавать экземпляры EC2 в AWS.Код следующий:
# We create the new EC2 instance for the new user
instance_id, ec2 = generateInstanceForUser(user_id)
i = ec2.Instance(id=instance_id) # instance id
i.start()
i.wait_until_running()
i.load()
time.sleep(45)
# Create account in DB
createAccountDB(user_id, username, user.mail, instance_id)
# Now that the instance and the account have been created, now settings have to be updated too
updateSettings(user_id, dictChange)
Проблема в том, что функция generateInstanceForUser(user_id)
блокирует рабочий процесс, а также следующие 5 строк (очевидно, с функцией time.sleep()
).Последняя функция updateSettings()
подключается через SSH к только что созданной машине и выполняет некоторые операции.Без учета задержек этот рабочий процесс работает хорошо.
ОДНАКО, поскольку я использую бота Telegram, во время этой части кода он зависает в течение 2 минут.В результате, если есть другие пользователи, отправляющие команды, бот не отвечает, и это нежелательно, очевидно.
ПРИМЕЧАНИЕ: используемые функции хранятся в библиотеке boto3.
ВОПРОС
Знаете ли вы какую-нибудь альтернативу, чтобы избежать блокирования рабочего процесса во время выполнения данного кода, чтобы избежать плохого UX с ботом Telegram?Спасибо.