我怎么有一个异步函数,写出一个服务总线队列? [英] How do I have an Async function that writes out to a service bus queue?

查看:222
本文介绍了我怎么有一个异步函数,写出一个服务总线队列?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用的Azure SDK WebJobs,我希望创建一个将接收ServiceBus队列输入和写入ServiceBus队列输出异步功能。异步方法不能有哪些,对BlobStorage例子,似乎是由具有流和TextWriters,而不是周围的工作参数。然而,当我试图做同样的一个ServiceBus参数我收到一个异常。

 公共静态无效的异步变换(
    [ServiceBusTrigger(%InputQueue%)字符串输入,
    [ServiceBus(%OutputQueue%)的TextWriter输出,
    TextWriter的日志)


  

错误索引方法FilterCurrentCpesToNewCpes


  
  

无法绑定ServiceBus键入System.IO.TextWriter。


我收到了类似的消息流。


解决方案

由于异步函数不能有输出参数,可以绑定到 ICollector< T> IAsyncCollector< T> 并进行添加()操作来发送消息。 ICollector在WebJobs SDK中定义。

下面的示例说明了这一点。

 公共静态无效的异步变换(
[ServiceBusTrigger(%InputQueue%)字符串输入,
[ServiceBus(%OutputQueue%)IAsyncCollector<串GT;输出,
TextWriter的日志)
    {
        等待ou​​tput.AddAsync(输入);
    }

Using the Azure WebJobs SDK, I want to create an async function that will receive ServiceBus queue input and write to a ServiceBus queue output. Async methods cannot have out parameters which, for examples on BlobStorage, appears to be worked around by having Streams and TextWriters instead. However, when I try to do the same with a ServiceBus parameter I receive an exception.

public static async void Transform(
    [ServiceBusTrigger("%InputQueue%")] String input,
    [ServiceBus("%OutputQueue%")] TextWriter output,
    TextWriter log)

Error indexing method 'FilterCurrentCpesToNewCpes'

Can't bind ServiceBus to type 'System.IO.TextWriter'.

I receive a similar message for Stream.

解决方案

Since Async functions cannot have out parameters, you can bind to ICollector<T> or IAsyncCollector<T> and perform Add() operation to send a message. ICollector is defined in the WebJobs SDK.

Following sample demonstrates this.

 public static async void Transform(
[ServiceBusTrigger("%InputQueue%")] string input,
[ServiceBus("%OutputQueue%")] IAsyncCollector<string> output,
TextWriter log)
    {            
        await output.AddAsync(input);
    }

这篇关于我怎么有一个异步函数,写出一个服务总线队列?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆