我设置了一个 azure 函数,用于从事件中心读取,以通过 sendgrid 或 twilio 发送警报消息。我希望能够判断何时发送SendGrid消息“await smsCollector.AddAsync(mobileMessage)”是否成功发送 - 即电子邮件不是无效的。这种设置可以吗?
public static class SendAlert
{
[FunctionName("v1_EventHub_SendAlert")]
public static async Task Run(
[EventHubTrigger("v1-email-hub", Connection = "EventHubConnection")] EventData[] events,
[SendGrid] IAsyncCollector<SendGridMessage> messageCollector,
[TwilioSms(From = "xXXXxxXxxx)] IAsyncCollector<CreateMessageOptions> smsCollector,
[Inject] NotificationEventLogic eventLogic,
[Inject] NotificationLogic notificationLogic,
ILogger log)
{
foreach (EventData eventData in events)
{
string messageBody = Encoding.UTF8.GetString(eventData.Body.Array, eventData.Body.Offset, eventData.Body.Count);
var notificationEvents = JsonConvert.DeserializeObject<List<NotificationEvent>>(messageBody);
foreach (var ev in notificationEvents)
{
var notification = await notificationLogic.GetNotificationAsync(ev.NotificationId);
if (ev.NotificationEventType == NotificationEventType.Email)
{
var message = CreateEmail(ev, notification);
await messageCollector.AddAsync(message);
}
else if (ev.NotificationEventType == NotificationEventType.SMS)
{
var mobileMessage = CreateSms(ev, notification);
await smsCollector.AddAsync(mobileMessage);
}
await eventLogic.CreateEventAsync(ev);
}
}
}
IAsyncCollector
有一个可以调用的 FlushAsync
方法。AddAsync
可以缓冲项目,但 FlushAsync
会强制它们通过(并在出错时引发异常)。
我有一个由IOThub触发的Azure函数。所以在Azure函数中,我有 如何从事件数据中获取设备id。 我试过了 它给出了一个错误的说法 以下文件说:https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-messages-construct ConnectionDeviceId包含设备ID。是否有人知道如何从EventDa
我试图了解更多关于异步/等待的信息,尤其是编译器如何知道在异步方法和等待时“暂停”,而不产生额外的线程。 例如,假设我有一个异步方法,如 我知道是我的方法被“挂起”并且调用它的线程返回线程池的地方,一旦跟踪连接打开的完成,然后找到一个可用的线程来运行。 这就是我困惑的地方。我查看了OpenAsync的源代码(https://referencesource.microsoft.com/#System
当失去焦点时,我需要捕捉,我搜索了其他问题,但没有找到答案。 我这样使用 但是,这对我不起作用。
问题内容: 如何从异步函数返回值?我试图喜欢这个 它给了我, 问题答案: 您不能超出范围。为了获得预期的结果,您应该将其包装到异步IIFE中,即 样品。 有关更多信息 由于返回一个Promise,因此可以将其省略,如下所示: 然后像以前一样做
我已经部署了一个AWS Lambda函数,它在SQS队列接收到消息时触发。该函数向Rest API发出请求,如果响应不是Ok,则需要再次处理SQS消息。 这就是为什么我需要将消息重新发送到队列,但我更愿意以编程方式删除SQS消息,尽管我找不到如何配置SQS。我尝试过消息保留,但似乎触发器事件会导致消息被删除。
我的出发点是一个HTTP触发的Azure函数。它从请求正文中收集一些JSON,并将该消息传递给Azure服务总线。 我在这里一定遗漏了一些东西(我以前在RabbitMQ中使用过控制台应用程序),但是我如何从HTTP触发的Azure函数向服务总线发布消息。 我找到了几个关于配置function.json的参考资料(在Visual Studio中就是-im构建)。 **更新**仍然无法使其工作。得到了
嗨, 谢谢你,也很抱歉西班牙语的命名,我知道这让阅读代码变得有点困难。
我有一个简单的JMS主题侦听器,我希望将它与spring-integration链挂钩。 基本上,当在侦听器中接收到JMS消息时,必须将其推入链的通道中。最终,消息被处理并推送到出站通道适配器中使用。 Spring Integration文档提到了异步网关的使用,但它使用了未来。难道没有一种简单的方法可以把消息放在频道上吗? 如果有一个可以指向的例子,那就太好了。 谢谢 问候 马丁