【问题标题】:How can I filter my Azure WebJob function call history by failure?如何按失败筛选我的 Azure WebJob 函数调用历史记录?
【发布时间】:2014-10-27 06:05:46
【问题描述】:

我有一个使用 Azure Web Jobs SDK 构建的 Azure WebJob。它使用队列中的消息并在另一个队列中生成消息。它有成千上万的成功和少数的失败。不幸的是,我发现回顾函数调用的唯一方法是对所有函数调用进行分页。

有什么方法可以获取失败列表并获取有关它们的其他详细信息,例如记录的内容或引发的异常?

【问题讨论】:

  • 您是否尝试过毒物队列并将失败的消息存储到 Azure 表存储?
  • 这将告诉我哪些消息失败了,但它不会给我导致失败的日志记录/异常。

标签: azure azure-webjobs azure-webjobssdk


【解决方案1】:

一个选项是记录/保存失败的消息,然后使用附加到网络作业的调试器重试。

此外,写入控制台输出和控制台错误的任何内容都将转到特定触发的 Web 作业运行的日志文件中。因此,在 try/catch 块中引发异常之前,请确保记录细节例外,以便您以后可以通过 FTP 或 UI 访问它。

Here 是有关如何/在哪里登录 azure 网站的详细信息。您可以通过 FTP 访问日志。

您还可以通过 REST API 访问这些信息。 Details here.

希望这会有所帮助,

【讨论】:

  • REST API 看起来像我想要的。今天晚上我会玩它,看看它是否能帮助我找到我的错误。重放失败的问题是,如果错误是暂时的(例如,远程服务关闭、收到来自远程服务的意外响应、内存不足异常等),它不会再次失败。
  • 如果它有帮助,在我的应用程序中,一些消息也会失败,但它们会被重新处理而没有错误。当且仅当它通过中毒队列失败超过 5 次时,我才将消息存储为错误。这样我就知道消息确实有问题。
  • 我相信服务总线会将处理 10 次(默认)失败的消息移动到死信队列中。但是,我相信它们会连续重试(在 peek 超时后)或在Abandon() 之后重试,这意味着如果由于依赖服务关闭而导致错误是暂时的,它们很可能会很快解决所有 10 次故障。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-29
  • 1970-01-01
  • 1970-01-01
  • 2022-12-12
  • 2017-12-09
相关资源
最近更新 更多