【发布时间】:2021-02-10 04:28:16
【问题描述】:
我正在使用 Azure Functions 队列触发器来读取队列消息并在 Python 中处理工作。我将batchSize 参数设置为1 以限制并发。在 Python 代码中,我有一个额外的检查来查看工作是否已准备好进行处理,如下所示:
if work is ready:
do_work()
else:
dequeue the message and try again
如果工作尚未准备好处理,我想将消息出列并在一分钟后重试。我想我可以通过将visibilityTimeout 设置为00:01:00 来实现重试。但是使消息出队的最佳方法是什么?会不会是:
if work is ready:
do_work()
else:
raise Exception("work is not ready, dequeue the message")
这是否可以让消息出队并在一分钟内重试?这个用例相当少见,我想知道是否有更好的方法,因为我不确定我是否想在我的日志中看到这个案例的错误。
编辑:是否可以在我的 Python QueueTrigger 中使用initialVisibilityDelay?如果我可以将消息的可见性延迟一分钟,这将消除我引发异常的需要。
【问题讨论】:
标签: azure azure-functions azure-function-app azure-queues