每个客户端在特定时间间隔使用 Azure Functions

问题描述 投票:0回答:1

我的要求是在预定时间运行作业(针对每个客户端)。

我的.net core应用程序将由多个客户端使用。 属于特定客户端的登录用户(具有管理员权限),使用 UI 界面在特定时间安排此作业并将其保存到数据库。 因此,仅与该客户相关的所有数据都应由作业在特定日期处理。 而另一个客户端用户可能会安排不同的时间。

例如:
客户端 X- 作业应在每月 5 日运行

客户端 Y - 作业应在每月 21 日运行

客户 Z - 作业应在每年 1 月 15 日运行

根据技术要求,这应作为 Azure Function 来解决。

所以我的挑战是:

  1. 如何为每个客户端创建 Azure Function 的多个实例。
  2. 如何为每个实例动态设置
    TimerTrigger
    。 (注:当用户更新日程时,定时器应动态重置。)

否则如果将其实现为

HttpTrigger

  1. 如何对多个实例进行计时并触发它。

谢谢,

PRI

.net-core azure-functions
1个回答
0
投票

您是否可以有一个数据库/表,其中包含哪些作业应该在何时运行的信息?因此,当用户从 UI 安排作业时,它会将如下内容写入数据库:

职位ID 客户端ID 运行日期 下次运行日期 间隔 工作状态
1 12345 2024-03-15 2024-03-15 7 待定

然后,您可以编写一个每天运行的 TimerTrigger 函数,并查询数据库以查看当天到期的作业。如果作业到期,它会对该客户的数据执行您的函数,然后根据间隔值更新 NextRunDate 字段(即每月 = 在下个月的同一天运行)。

为每个客户端创建一个全新的函数并不是一个好习惯——不要这样做。您应该将应用程序状态存储在数据库、队列或其他类似工具中。

© www.soinside.com 2019 - 2024. All rights reserved.