2014-10-28 11 views
8

Azure WebJobs SDK'sını kullanarak, ServiceBus sıra girdisi alacak ve bir ServiceBus kuyruk çıktısına yazacak bir eşzamansız işlev oluşturmak istiyorum. Async metotları, BlobStorage'daki örneklerin, bunun yerine Streams ve TextWriters'lar yerine çalıştıkları anlaşılan parametrelere sahip olamaz. Ancak, bir ServiceBus parametresiyle aynı şeyi yapmaya çalıştığımda bir özel durum alırım.Bir servis veri yolu sırasına yazılan bir Async işlevi nasıl olabilir?

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

Hata indeksleme yöntemi 'FilterCurrentCpesToNewCpes'

bağlamaz Can ServiceBus 'System.IO.TextWriter' yazın.

Akış için benzer bir mesaj alıyorum.

cevap

12

Async işlevleri parametreler dışında olamayacağından, ICollector<T> veya IAsyncCollector<T>'a bağlanabilir ve bir mesaj göndermek için Add() işlemini gerçekleştirebilirsiniz. ICollector, WebJobs SDK'sında tanımlanmıştır.

Aşağıdaki örnek bunu göstermektedir.

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