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