2014-10-27 60 views
1

我有一个使用Azure Web Jobs SDK构建的Azure WebJob。它消耗队列中的消息并在另一个队列上生成消息。它有成千上万的成功和少数失败。不幸的是,我可以找到的唯一方法是回顾函数调用,通过分页浏览所有函数。如何通过失败过滤我的Azure WebJob函数调用历史记录?

enter image description here

有一些方法可以让我得到了失败的列表,并获得关于它们的更多详细信息,如发生了什么记录或者被抛出什么异常?

+0

您是否尝试过的有害队列和存储失败的消息天青表存储可能? – lopezbertoni 2014-10-27 11:42:22

+0

这将告诉我哪些消息失败,但它不会给我导致失败的日志/异常。 – 2014-10-27 16:10:29

回答

0

一个选项是记录/保存失败的消息,然后使用连接到Webjob的调试器重试它。

另外,无论写入控制台输出和控制台错误,都将转到特定的触发webjob运行的日志文件。所以,在你的try/catch块中抛出一个异常之前,请确保你记录了具有细节的异常,以便稍后通过FTP或UI来接受它。

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

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

希望这有助于

+0

REST API看起来像我想要的。我今天晚上会玩,看看它是否有助于我找到我的错误。重放失败的问题在于,如果错误是暂时的(例如,远程服务关闭,从远程服务收到意外的响应,内存不足异常等等),它将不会再次失败。 – 2014-10-27 22:18:09

+0

如果有帮助,在我的应用程序中,某些消息也会失败,但是它们会被重新处理而不会出错。当且仅当通过poision队列失败超过5次时,我将该消息存储为错误。这样我就知道这封邮件真的有问题了。 – lopezbertoni 2014-10-27 22:35:49

+0

我相信Service Bus会将无法处理10(默认)时间的消息移动到死信队列中。然而,我相信他们会在紧接着的时候(在peek超时之后)或者在放弃()之后被重试,这意味着如果由于相关服务被关闭而导致错误是暂时的,那么他们很可能会非常快速地冲击所有10次失败。 – 2014-10-28 03:13:40

相关问题