有没有办法使Azure WebJobs ServiceBus out参数可选?

时间:2014-08-07 15:16:20

标签: c# azure azureservicebus azure-webjobs azure-webjobssdk

我正在构建一个将作为连续Azure WebJob运行的控制台应用程序。我通过Nuget包Microsoft.Azure.Jobs.ServiceBus v0.3.1-beta(预发行版)使用Azure WebJobs SDK。我有一个在Azure ServiceBus队列上触发的静态方法。我做了一些处理,然后想要选项通过输出参数将响应发送到另一个队列。方法签名如下所示:

public static void TriggerOnQueue(
     [ServiceBusTrigger(QueueName)] BrokeredMessage receivedMessage,
     [ServiceBus(QueueResponseName)] out BrokeredMessage responseMessage)
{
      ...
}

我最初的想法是将responseMessage设置为null。但是,当我这样做时,控制台窗口中会出现错误。它不会停止执行(所以它在技术上做了我想要它做的事情),但我宁愿不把某些东西抛到生产中。是否有任何非hackish方法在响应消息中设置一个不会引发错误的值,但是不会将消息提交给响应队列?

如果没有,是否还有其他我可以使用的模式?我更喜欢使用WebJobs SDK的管道功能,而不是手动创建输出队列。我可能会将需要响应的请求提交到一个单独的队列中,并且有两个单独的触发器,但是如果我有这么多,我宁愿保持简单和一起。

思想?

1 个答案:

答案 0 :(得分:1)

这种为out参数指定null的模式适用于Azure队列,但它会引发服务总线队列的异常。这看起来像SDK中的bug。我会为我们打开一个bug来修复它。感谢您报告此问题