【问题标题】:Azure Webjobs: Replay successful function behaviorAzure Webjobs:重播成功的函数行为
【发布时间】:2015-08-09 13:12:59
【问题描述】:

我刚开始使用 Azure Webjobs 发送电子邮件通知,告知我使用我开发的工具完成了成功的检查。 Webjob 由控制器发送的 CloudQueueMessage 触发。到目前为止,基本上一切正常。

但现在我想知道如何使用 Webjobs 仪表板中的“重播功能”按钮:我尝试使用此按钮重播成功的 CloudQueueMessage(并因此重新发送电子邮件)。
消息被添加到队列中并触发了我的 Webjob,但如果检查 CloudQueueMessage,一些先前设置的属性(如 Id 和 PopReceipt)为空。是什么导致了这种行为?

我需要 ID,因为在我的 Webjob 中我使用“UpdateMessage()”来设置消息的处理状态。

【问题讨论】:

    标签: azure azure-webjobssdk


    【解决方案1】:

    重播实际上并没有将新消息排入队列 - 它采用消息的 json/string 正文(显示在 Replay UI 中)并导致您的函数通过“反向通道”调用 - json/string 数据是用于在内存中构造新的队列消息,这就是调用函数的内容。因此,只有 UI 中输入字符串中包含的信息才会传递给您的函数。

    请注意,在调用之前,您可以修改消息体。您可以在重播之前设置所需的位吗?

    【讨论】:

    • 谢谢!这种行为是否记录在某处?在我的网络作业中,我首先发送一封电子邮件,然后创建一个数据库条目。如果数据库更新期间出现问题,我会更新消息以避免重新发送电子邮件。 CloudQueueMessage.Id 是必要的。我认为如果重播的消息仅在内存中,则不会再次触发 webjob。所以一切都应该没问题。在更新消息之前,我将检查 Id 和 PopReceipt 是否为空(这意味着这是一条内存消息)。 >> '您可以修改邮件正文。'我认为这样设置 MessageId 是不可能的,是吗?
    • 我不确定是否有这方面的具体细节,但是这个主页上有链接的仪表板文档页面:azure.microsoft.com/en-us/documentation/articles/…
    • 另外,“修改消息正文”是指回放 UI 中字符串中的任何数据。如果您绑定到 POCO,您将能够设置 JSON 属性等,并且您的函数会获取它们。
    • 如何成功启用 Azure WebJob 3.0 的回放功能?
    猜你喜欢
    • 2022-06-14
    • 2021-12-05
    • 2020-11-07
    • 1970-01-01
    • 1970-01-01
    • 2021-08-19
    • 2022-08-15
    • 1970-01-01
    • 2015-07-09
    相关资源
    最近更新 更多