如何使用服务结构安排服务在每天和特定时间运行?

Posted

技术标签:

【中文标题】如何使用服务结构安排服务在每天和特定时间运行?【英文标题】:How to schedule a service to run daily and at specific time using service fabric? 【发布时间】:2020-12-01 04:11:29 【问题描述】:

我正在尝试构建一个服务,使其每天在特定时间运行一次,以尽量减少使用服务结构对数据库的多次调用

【问题讨论】:

【参考方案1】:

您可以使用Actor reminders

您需要调用 RegisterReminderAsync。每 24 小时运行一次


var reminderRegistration = await this.RegisterReminderAsync(
        reminderName,
        BitConverter.GetBytes(amountInDollars),
        TimeSpan.FromMinutes(0),    //The amount of time to delay before firing the reminder
        TimeSpan.FromHours(24));    //The time interval between firing of reminders

如果您想在特定时间运行,您可以每小时/ x 分钟触发一次,并在该方法中检查 DateTime.UtcNow 是否在正确的窗口中。

【讨论】:

根据所使用的时间间隔,它是否不可能错过正确的时间,例如,如果它每 5 分钟运行一次,而 DateTime 假设 00:01 是它应该运行的时间并在00:00? 您可以将最后执行日期保持在提醒状态以应对这种情况。

以上是关于如何使用服务结构安排服务在每天和特定时间运行?的主要内容,如果未能解决你的问题,请参考以下文章

Spark UDF:如何在每一行上编写一个 UDF 以提取嵌套结构中的特定值?

每天在特定时间调用方法

如何安排闪亮的模块文件,以便它们在闪亮的服务器上运行?

如何在 Windows 服务中使用 Quartz.Net 安排任务?

如何安排 sql 脚本并将数据导出到 IBM Netezza 中的特定位置

Google App Engine 中的 cron.yaml:如何在特定分钟每小时安排一次任务?