Azure 上以文档为中心的事件计划



我知道在 Azure 中调度以系统为中心的事件的许多不同的方法。 例如 Azure Scheduler、Logic Apps 等。这些可用于备份、发送批量电子邮件或其他维护功能等。

但是,我不太清楚哪些技术可用于与大量文档或记录相关的事件。

例如,假设我在 Cosmos 中有 100,000 个文档,这些文档上的一些日期时间属性与事件相关:例如到期、提醒、升级、超时等。每条记录都有一组不同的日期和时间。

每当达到其中一个日期时间时,有哪些方法可以触发代码?

到目前为止我想到的东西:

  1. 有一个每分钟运行一次的计划任务,并在 Cosmos 中查找与该特定分钟相关的任何内容,然后执行"操作"。

  2. 在服务总线队列上计划任务,将来的日期为创建 Cosmos 记录的时间,然后有一些东西来接收这些消息并执行"操作"。

但是有更好的方法吗?是否有现成的 Azure 服务可以占用大部分后台基础结构工作,只让我在特定时间点安排单个一次性事件并点击 Webhook 或类似的东西?

我是否错误地将 Azure 计划程序归类为用于少数定期计划任务的东西,而不是在 100,000 条 Cosmos 记录中找到的日期和时间的混合包?

FWIW,在我的用例中,并没有真正的精度问题 - 例如,计划在 10:05:00 发生在 10:05:32 的事情是完全可以接受的。

欣赏你的想法。

首先,Azure Schedular 将被 Azure Logic Apps 取代:

Azure

逻辑应用正在取代即将停用的 Azure 计划程序。若要计划作业,请按照本文改为迁移到 Azure 逻辑应用。

(来源)

也就是说,Azure 逻辑应用是你的选项之一,因为你可以使用延迟活动定义启动一次性作业的逻辑应用。有关详细信息,请参阅文档。

它的扩展性非常好,您可以按使用量付费(或使用固定定价模型)。

另一种选择是使用带有计时器的持久 Azure 函数。一旦过去,你就可以做你的事了。您也可以使用消耗计划,因此您只需为使用的内容付费,也可以使用固定定价模型。它的扩展性也非常好,因此数百个实例不会成为问题。

在这两种情况下,都必须在创建 Cosmos 记录时触发函数或逻辑应用。将到期时间作为触发器中的上下文,然后就可以了。

现在,鉴于您的陈述

我知道在 Azure

中计划以系统为中心的事件的许多不同的方法。 例如 Azure 计划程序、逻辑应用等。这些可用于备份、发送批量电子邮件或其他维护功能等。

这取决于你。你可以做任何你想做的事。您没有在问题中指定在达到适当时间时需要完成哪些工作,但我怀疑这是您无法使用这些服务做的事情。

最新更新