我正在使用 Python 中的 Azure 函数应用程序,它有两个函数 HTTPTrigger 和 QueueTrigger,在 QueueTrigger 中我调用了我的自定义代码,这需要 10 多分钟才能处理。我在 host.json 中将其从 5 分钟更改为 10 分钟{"functionTimeout": "00:10:00"}
。我的问题是,有没有办法通过更新 QueueMessage 内容或 visibilityTimeout 或 Timeout 来延长处理时间?换句话说,如果将消息的不可见性延长到处理完,Function App 的处理时间会延长吗?请参阅 Python API QueueService.update_message()
是否还有其他无服务器选项可以运行长进程?
更新消息的可见性超时。您还可以使用此操作来更新消息的内容。
此操作可用于不断扩展队列消息的不可见性。如果您希望工作人员角色“租用”队列消息,此功能会很有用。例如,如果一个工作角色调用 get_messages 并认识到它需要更多时间来处理一条消息,它可以不断地延长消息的不可见性,直到它被处理。如果工作角色在处理过程中失败,最终消息将再次变得可见,并且另一个工作角色可以处理它。
update_message(queue_name, message_id, pop_receipt, visibility_timeout, content=None, timeout=None)