Мне нужно отправить сообщение в хранилище очередей, но не заставлять его немедленно вызывать функцию, связанную с этой очередью. В этом базовом примере я хочу отправить сообщение в очередь, чтобы через 1 минуту вызвать функцию:
def main(msg: func.QueueMessage, outputQueueItem: func.Out[func.QueueMessage]) -> None:
data = msg.get_json()
# Do some fancy stuff
message = func.QueueMessage(body=json.dumps({"spam": 1, "eggs": "ham"}))
# This causes an AttributeError since you cant set time_next_visible
message.time_next_visible = datetime.utcnow() + timedelta(minutes=1)
outputQueueItem.set(message)
# More fancy stuff down here
Я мог бы добавить time.sleep(60)
перед отправкой сообщения, но похоже,плохая практика, плюс это задержит любой другой код ниже строки, отправляющей сообщение, и увеличит стоимость биллинга за запуск функции. Это особенно плохо, если требуется большая задержка (например, час).
Есть ли какой-нибудь хороший способ отложить немедленное включение следующей функции сообщения?