Long 运行 Azure Webjob - 一直停止
Long running Azure Webjob - Keeps stopping
我使用 Azure webjobs 已经有一段时间了,但我仍在努力弄清楚为什么一些非常长的 运行 web 作业会失败。
我有一个 webjob,它是使用 Azure SDK 构建的,并从传入的队列消息中触发。此 web 作业从 Azure Blob 存储中提取 XML 的 blob,其中包含有关 110000 个项目的信息,然后它循环遍历这些并使用 REST WebApi2 端点发出各种 HttpClient 请求以在我们的 table 存储和 DocumentDB 中创建各种实体......这个过程是我正在处理的事情,但它运行了好几天......这很好,因为没有紧迫感,除了它会随机停止,有时会在两天后...最后一次唯一的消息是 "Thread was being aborted"。我定期注销和 http 调用,所以它不像工作坐在那里什么都不做......
更新:
我还应该声明我已将整个应用程序服务计划升级到 S1,并将托管 Web 作业的 Web 应用程序设置为 Always On...
我也看过 "WEBJOBS_RESTART_TIME" 但这不相关,因为它是关于停止后重新启动的,我认为连续工作没有错误不应该做的事情!
我发现了一件事 运行 webjobs 很长。要使线程继续工作很长时间,您必须:
- 不时用Console.Write写入输出
- 添加一个名为 WEBJOBS_IDLE_TIMEOUT (source) 的应用程序设置,它定义了环境等待空闲 web 作业的时间量(无控制台输出)在关闭之前。
我会两者都做,像 "heartbeat" 添加 Console.Write 并添加应用程序设置。
我们在长期 运行 网络作业方面遇到了很多问题,最终购买了付费支持,因为这些作业经常会失败,而我们无法弄清楚原因。这已经持续了 2 个多月,仍然没有解决方案。他们确实建议使用 local_cache 设置,该设置会暂时停止重新启动,但最终重新启动会再次开始。
多年来,我们已经将它们从 运行 完美无缺的虚拟机中移除。在我看来,Web 作业不适合长时间的 运行ning 作业,您应该转移到虚拟机上。我们有许多短期 运行ning 工作,它们做得很好,但对于任何长期 运行ning,我认为网络工作还没有准备好迎接黄金时段。我们在这些问题上花费了很多时间来提供支持,但都无济于事,坦率地说,我们觉得我们现在只是在浪费时间。为自己省去痛苦,然后去虚拟机并在 6 个月内重新访问它。
我使用 Azure webjobs 已经有一段时间了,但我仍在努力弄清楚为什么一些非常长的 运行 web 作业会失败。
我有一个 webjob,它是使用 Azure SDK 构建的,并从传入的队列消息中触发。此 web 作业从 Azure Blob 存储中提取 XML 的 blob,其中包含有关 110000 个项目的信息,然后它循环遍历这些并使用 REST WebApi2 端点发出各种 HttpClient 请求以在我们的 table 存储和 DocumentDB 中创建各种实体......这个过程是我正在处理的事情,但它运行了好几天......这很好,因为没有紧迫感,除了它会随机停止,有时会在两天后...最后一次唯一的消息是 "Thread was being aborted"。我定期注销和 http 调用,所以它不像工作坐在那里什么都不做...... 更新:
我还应该声明我已将整个应用程序服务计划升级到 S1,并将托管 Web 作业的 Web 应用程序设置为 Always On...
我也看过 "WEBJOBS_RESTART_TIME" 但这不相关,因为它是关于停止后重新启动的,我认为连续工作没有错误不应该做的事情!
我发现了一件事 运行 webjobs 很长。要使线程继续工作很长时间,您必须:
- 不时用Console.Write写入输出
- 添加一个名为 WEBJOBS_IDLE_TIMEOUT (source) 的应用程序设置,它定义了环境等待空闲 web 作业的时间量(无控制台输出)在关闭之前。
我会两者都做,像 "heartbeat" 添加 Console.Write 并添加应用程序设置。
我们在长期 运行 网络作业方面遇到了很多问题,最终购买了付费支持,因为这些作业经常会失败,而我们无法弄清楚原因。这已经持续了 2 个多月,仍然没有解决方案。他们确实建议使用 local_cache 设置,该设置会暂时停止重新启动,但最终重新启动会再次开始。
多年来,我们已经将它们从 运行 完美无缺的虚拟机中移除。在我看来,Web 作业不适合长时间的 运行ning 作业,您应该转移到虚拟机上。我们有许多短期 运行ning 工作,它们做得很好,但对于任何长期 运行ning,我认为网络工作还没有准备好迎接黄金时段。我们在这些问题上花费了很多时间来提供支持,但都无济于事,坦率地说,我们觉得我们现在只是在浪费时间。为自己省去痛苦,然后去虚拟机并在 6 个月内重新访问它。