【发布时间】:2020-12-23 16:16:33
【问题描述】:
我有一个托管服务,每 3 天发送一封电子邮件 我的问题是当我在 azure 中发布服务时重新启动 3 天的计算
public Task StartAsync(CancellationToken cancellationToken)
{
_timer = new Timer(SendReminderEmail, null, TimeSpan.FromDays(3), TimeSpan.FromDays(3));
return Task.CompletedTask;
}
这个问题有解决办法吗?例如,我在 azure 星期二发布我希望我在星期五有一封电子邮件,但如果我在 azure 星期三发布另一个时间,它将从星期三开始计算:/
谢谢
【问题讨论】:
-
该类在您的服务中运行。发布服务时,需要重新启动它。在任何情况下,托管服务不适用于长达数天的日程安排。此外,当您每周只需要两次时,您正在为 24/7 全天候付费
-
将日期存储在某种形式的队列/数据库中,然后使用它而不是将其保存在内存中
-
请使用诸如带定时器的持久函数之类的东西,而不是自己构建它! docs.microsoft.com/en-us/azure/azure-functions/durable/…
-
如果托管服务不适用于长达数天的计划。我应该用什么?抱歉,我是 asp.net 核心的新手。我只有一封电子邮件,如果他们没有完成他们的题字,必须每 3 天发送给用户
标签: c# asp.net azure asp.net-core asp.net-core-hosted-services