gpt4 book ai didi

c# - 如何从基于 Azure 的 MVC 应用程序启用提醒?

转载 作者:行者123 更新时间:2023-12-03 05:07:39 24 4
gpt4 key购买 nike

当经理创建任务并设置将来的激活日期时,它应该存储在数据库中。直到截止日期前一两天,才会向受关注的 worker 发送任何消息。时间一到,就会向下属发送电子邮件。

之前我已经使用本地运行的 Windows 服务来安排消息传递来解决这个问题。然而,当我在 Azure 中实现类似的东西时,我不确定如何解决它(当然,除了在云中实际托管我自己的 Windows Server 之外,但这有点违背了重点)。

由于我的 MVC 应用程序是严格事件驱动的,因此我在 Azure 门户中浏览以找到一个实用程序来计划或推迟调用的方法。没有运气。因此,目前,所有电子邮件都会立即发送,并且通过将消息保留在收件箱中直到时间到(或手动设置预约)来执行安排。

我应该如何处理这个问题?

最佳答案

其他可能的解决方案是使用排队机制。您可以使用Azure 存储队列服务总线队列

它的工作方式是当创建任务并将其保存在数据库中时,您将在队列中写入一条消息。该消息将包含有关任务的详细信息(可能是任务 ID)。但是,该消息默认情况下是不可见的,并且仅在一定时间后才可见(您将根据需要发送电子邮件的时间来计算该时间段)。当可见性超时期限到期时,消息将在队列中可供使用。然后,您将拥有一个带有 Queue 触发器的 WebJob(即,当队列中有消息时,WebJob 将变为事件状态)。在您的 WebJob 代码中,您将从数据库中获取任务信息并将通知发送给相关人员。

如果您使用的是 Azure 存储队列,您可能感兴趣的属性是 InitialVisibilityTimeout。请参阅此线程了解更多详细信息:Azure storage queue message (show at specific time) .

如果您使用的是 Azure 服务总线队列,您可能感兴趣的属性是 BrokeredMessage.ScheduledEnqueueTimeUtc。您可以在这里阅读有关此属性的更多信息:https://msdn.microsoft.com/en-us/library/microsoft.servicebus.messaging.brokeredmessage.scheduledenqueuetimeutc.aspx .

关于c# - 如何从基于 Azure 的 MVC 应用程序启用提醒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36675555/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com