我有一个从互联网上抓取文件并处理它的网络作业。我已将它绑定到每天午夜运行的调度程序。
有时,抓取文件进程失败并引发异常,导致 Web 作业崩溃并停止,直到第二天调度程序再次启动。
为了阻止应用程序崩溃,我有一个选择是用 try-catch 块包装它并处理错误。但我希望能够在失败后重新运行网络作业。
有没有办法让我告诉 azure 调度程序在任务失败后重新运行 N 次?
例如,我希望网络作业在失败 5 分钟后重新运行最多 5 次。我不想等待调度程序在第二天启动。
我有一个从互联网上抓取文件并处理它的网络作业。我已将它绑定到每天午夜运行的调度程序。
有时,抓取文件进程失败并引发异常,导致 Web 作业崩溃并停止,直到第二天调度程序再次启动。
为了阻止应用程序崩溃,我有一个选择是用 try-catch 块包装它并处理错误。但我希望能够在失败后重新运行网络作业。
有没有办法让我告诉 azure 调度程序在任务失败后重新运行 N 次?
例如,我希望网络作业在失败 5 分钟后重新运行最多 5 次。我不想等待调度程序在第二天启动。
有没有办法让我告诉 azure 调度程序在任务失败后重新运行 N 次?
Azure 调度程序不提供验证“远程”执行是否成功的方法,但您可以使用“存储队列”操作类型将消息放入指定队列并在 Web 作业本身中实现相同的行为。Azure Web Jobs SDK将处理传入消息并在引发异常时重试最多 5 次,队列处理器也是可扩展的(自 1.1 起),因此您可以轻松实现指数重试策略或您需要的任何策略(通过扩展QueueProcessor和QueueProcessorFactory类)。
脚步:
[QueueTrigger("myqueue")]
),并将其配置为“连续运行”(在 VS 项目和 azure Web 应用程序中)。注意:此选项需要您的 Web 应用程序中的标准层(由于“连续运行”)