1

我有一个托管服务,每 3 天发送一封电子邮件我的问题是当我在 azure 中发布服务时重新启动 3 天的计算

  public Task StartAsync(CancellationToken cancellationToken)
        {

            _timer = new Timer(SendReminderEmail, null, TimeSpan.FromDays(3), TimeSpan.FromDays(3));
             

            return Task.CompletedTask;
        }

这个问题有解决方案吗?例如,我在 azure 星期二发布我希望我在星期五有一封电子邮件,但如果我在 azure 星期三发布另一个时间,它将从星期三开始计算:/

谢谢你

4

1 回答 1

0

有一些不同的选项可能会更好地满足您的需求。在这三个中,我会选择无声提到的函数。

  1. Webjobs专门用于运行与主应用程序分离的后台任务。它们可以在计时器上运行,并与您的主应用程序分开部署。
  2. 这是Functions的一个很好的用例,它建立在 Webjobs 之上,并添加了基于消耗的计费选项,您只需为实际使用的资源付费,而不是传统的 App Service 帐户,您按小时付费,即使您的应用处于空闲状态。如果您的应用服务已经有多余的容量,您也可以在那里部署它。
  3. 在服务总线或存储队列中使用计划交付。一旦你的进程完成运行,它会在三天后安排一条消息。缺点是这可能有点脆弱——如果进程失败,它将不会创建新消息并且循环将被打破。
于 2020-09-04T16:22:15.683 回答