You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python V2模型Azure Service Bus队列触发器添加重试策略后函数消失求助

Python V2中为Azure Service Bus触发器添加重试延迟的正确方式

你的函数部署后从选项卡消失,核心原因是代码存在语法错误(使用了Python不支持的//单行注释格式),同时需确保重试装饰器的参数配置符合规范。

正确实现示例

@app.retry(strategy="fixed_delay", delay_interval="00:00:10", max_retries=3)
@app.service_bus_queue_trigger(
    arg_name="azservicebus",
    queue_name="publish-queue",
    connection="SERVICE_BUS_CONNECTION"
)
def publish_der(azservicebus: func.ServiceBusMessage):
    """Service bus trigger which receives data from API"""
    # implementation goes here
    # 示例逻辑:读取消息内容,若处理失败抛出异常触发重试
    message_content = azservicebus.get_body().decode('utf-8')
    print(f"Received message: {message_content}")
    # 模拟处理失败(实际场景替换为业务逻辑异常)
    # raise Exception("Processing failed, trigger retry")

关键注意事项

  • 重试仅在函数抛出未捕获异常时触发,正常返回不会触发重试逻辑
  • delay_interval支持HH:MM:SS格式字符串,如"00:00:10"代表10秒延迟
  • max_retries为可选参数,默认值是3,设置为-1表示无限重试(不建议生产环境使用)
  • 确保azure-functions包版本≥1.11.0,旧版本不支持@app.retry装饰器
  • 部署前务必本地验证代码语法,避免因解析失败导致Azure无法识别函数

内容的提问来源于stack exchange,提问作者Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 09:12:49