1

我们托管了一个 azure 应用程序,并通过为每个组织创建单独的数据库为多个组织启用。现在,我们需要运行一个需要生成的后台服务:

  1. 在启用 TimerTrigger 的情况下配置 Azure 功能(运行时间将由每个组织在管理应用程序中配置)

  2. Azure函数应根据组织配置的时间多次调用(同一个函数将被称为多个实例)

  3. 每个组织的功能调度时间应按需更新(通过 c# 代码) - 我不确定这是否可以完成

  4. 根据时间和组织详细信息,函数需要从相应的数据库中获取记录并进行处理。

  5. 为了最大限度地减少函数超时问题 - 记录将作为批处理并在相应的组织数据库中更新。

让知道您对此的意见

谢谢!

4

1 回答 1

1

函数不打算长时间运行。如果您有很多租户和/或报告生成速度很慢,则可以终止函数调用(默认为 5 分钟后)。

如果您需要通过计时器运行长时间的作业,Web Jobs 是更好的选择。

如果我要使用函数,我会做的稍有不同:

  1. 定时器触发函数每天运行(或任何频率),并向每个租户发送 1 条消息到队列,说“请为租户 X 生成报告”。它会运行得非常快。

  2. 另一个队列触发函数侦听该队列,获取消息并为租户 X 的每条消息生成一个报告。

这样,您将更均匀地分配工作,并隔离可能的故障并可能并行生成多个报告。

您可能还想看看Durable Functions,您可以在其中实现类似的工作流:生成单个报告的活动函数和为每个租户调用它的协调器函数。

于 2018-01-12T20:56:15.863 回答