我正在编写一个包含各种业务逻辑的库,并希望它能够与azure函数进行接口。我想收到一个消息接收器,用于接收我的代码希望产生的通知,并且IAsyncCollector似乎是一个合理的接口(它具有接近2个琐碎的函数调用接口定义),也可以在azure函数app调用中简单地提供给我。
我正在编写的库是否有可能接受IASyncColector,而不必为该接口仅添加所有天蓝色的webjob作为我的库的依赖项?
或者,内部代码应该只是生成消息,然后将它们返回给主机以添加到收集器,即使那是凌乱的代码,也需要将每个函数调用包装在'foreach'中?
如果有多个消息,则要获取消息收集器。但是我不知道为什么要使用IAsyncCollector
,因为有关此类型的描述是只写集合,您可以检查doc:Writing multiple output values。
并且,如果您不想使用webjob sdk,则意味着您无法使用存储绑定,而您仍想对多封邮件进行操作:
[接收消息,使用GetMessages方法,它将返回一个可枚举的消息集合。
发送消息,只需使用列表,然后循环执行它并执行添加操作,或者仅绑定CloudQueue
类型并使用AddMessage
方法。
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
CloudQueue queue1 = queueClient.GetQueueReference("myqueue");
CloudQueue queue2 = queueClient.GetQueueReference("queue1");
IEnumerable<CloudQueueMessage> messages= queue1.GetMessages(10);
List<CloudQueueMessage> messages1=new List<CloudQueueMessage>();
foreach (var message in messages) {
Console.WriteLine(message.AsString);
messages1.Add(message);
}
foreach (var message in messages1) {
queue2.AddMessage(message);
}
希望这可以为您提供帮助,如果仍然有其他问题需要使用IAsyncCollector
,请告诉我。