6

我正在尝试使用 Azure WebJob SDK,但找不到任何关于它的文档,所以我可以知道会发生什么,而不必通过测试来戳它。

我确实找到了这个:http ://azure.microsoft.com/en-us/documentation/articles/websites-webjobs-resources/但它更多的是教程而不是文档。他们向我介绍了 SDK 的非常基本的用法,但没有详细介绍非快乐路径的情况。

我还发现https://github.com/Azure/azure-webjobs-sdk-samples有一些不愉快的路径,但那里关于服务总线的信息很少。

在没有强大文档的情况下,如果源代码可用(通过反射除外)会很好。然后我可以挖掘一点,找到我的问题的答案。目前,我发现回答任何问题的唯一方法是编写一些测试,但这很快就会变得乏味。

我无法在上述链接中找到答案的一些问题示例(尽管我可能错过了):

  1. 如果我有一个带[ServiceBusTrigger("my-queue")] String 参数的方法,它是 PeekLock 还是 ReceiveAndDelete?

  2. 怎么样[ServiceBusTrigger("my-queue")] BrokeredMessage

  3. 如果是 PeekLock,函数成功执行(无异常)会发生什么?它是在消息上调用 Complete 还是我需要手动调用它?

  4. 如果我有 a[ServiceBusTrigger("my-queue")] BrokeredMessage而不是 a ,行为会改变[ServiceBusTrigger("my-queue")] String吗?

  5. 如果我的处理方法抛出异常会怎样?它会在消息上调用 Abandon 吗?

  6. 如果我的处理功能比 PeekLock 超时时间长,锁是自动更新还是我必须手动更新?

  7. 除了 String 和 BrokeredMessage 之外,我还可以对 ServiceBusTriggers 使用任何其他自动反序列化吗?

  8. 是否可以将反序列化器连接到我的 ServiceBusTrigger 参数?例如,如果我的消息是 protobuf 格式,我可以向 WebJob SDK 介绍它,以便它可以为我反序列化,还是我必须将它作为 BrokeredMessage 接收并手动反序列化?

4

1 回答 1

6

请在此处找到您的问题的答案。

  1. SDK 做 PeekLock
  2. 您将收到 BrokeredMessage
  3. 它会自动完成
  4. SDK 将为您提供 BrokeredMessage 与字符串,但自动完成是相同的
  5. 呼叫放弃
  6. 我们实际上调用了 OnMessageAsync,它会自动处理更新 PeekLock 超时。(如果这不起作用,那么我认为这将是一个错误)
  7. 是的,您可以使用任何 POCO,我们将进行 JSON 序列化/反序列化。我们还支持字节[]。
  8. 我们将为您处理字符串、字节[] 和 POCO/JSON(以及 BrokeredMessage)。对于其他任何事情,您需要使用其他格式之一(如字符串或字节 [] 或 BrokeredMessage)并从那里自己处理。
于 2014-11-04T19:35:41.907 回答