【问题标题】:Azure WebJob Dies Silently - Nothing in Any LogAzure WebJob 无声无息地死去 - 任何日志中都没有
【发布时间】:2016-03-17 06:01:20
【问题描述】:

我有一个带有 QueueTrigger 的 Azure WebJob,它一直在工作。现在它有很高比例的失败消息。失败将进入有害消息队列,但没有报告其他错误。失败不会出现在 webjobs 仪表板中,输出窗口中也不会出现错误。如果我在调试模式下本地运行 webjob,同样的事情。所有成功的消息都会显示并显示为成功。失败只是鬼魂。他们似乎只是直接下毒。所有消息都基于相同的 POCO 类,并且消息本身的任何内容都看起来不正确。我过去曾遇到过这个网络作业的问题,但它总是在某处显示错误。我找不到任何信息可以为我指明正确的方向。

更新:我接受了网络作业并删除了几乎所有的代码......只是想看看会发生什么。它适用于每条消息。我现在的代码中没有任何 try/catch 块可以阻止异常或其他错误显示出来。为什么工作会默默地死去(但只是一部分时间)?

【问题讨论】:

  • 您是否将 Web 应用的 Always On 标志设置为 true?您可以发布初始化 JobHost 的方法的代码吗?
  • 我也有同样的问题。我怀疑这可能是由于重复运行导致内存泄漏。我确实曾经遇到过内存不足的异常,但它已经失败了 10 次而没有给出该错误。我在消费计划中,所以理论上它不应该因为内存不足而出错;它应该只收取我的费用
  • 您是否正在创建任何 X509Certificate2 对象?我遇到了 Azure Web 应用程序静默失败并重新启动应用程序池的问题,因为我没有将正确的参数传递给构造函数。
  • @Dessus:这当然可能是一个复合内存泄漏问题。我需要挖掘更多。我现在正在重新审视这个问题,因为我的应用程序的 V2 即将发布。乔恩:没有证书对象。我认为可能是问题的一件事是 blob 存储。我的工作使用上传的文件作为其处理的一部分。我将文件上传到 Azure 存储,然后为 WebJob 排队 POCO 消息。因为 C# 存储上传是异步的,所以在队列消息处理开始之前文件可能没有完全上传,WebJob 无法获取完整文件。将发布更新。

标签: azure azure-webjobs azure-webjobssdk


【解决方案1】:

我怀疑这可能与此有关:

我是否需要重新考虑如何编写函数? 总的来说,不,事情和以前几乎一样,只是少了一个需要担心的设置。之前应用的相同限制仍然适用:1.5GB 最大内存和 5 分钟最大执行时间。此更改的最大影响是,您现在可以确保获得正确数量的资源并为您的函数执行支付尽可能少的费用。

That snippet was taken from this link.

【讨论】:

  • 虽然我的许多 WebJob 调用将运行超过 5 分钟,但队列触发的 WebJobs 没有时间限制,不像 Functions 似乎有 5 分钟的硬限制。我查看了 Functions,但这个限制和冷启动问题似乎限制了它对我的使用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
  • 2020-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-17
相关资源
最近更新 更多