繁体   English   中英

asp.net core 中的托管服务(后台服务)在每次 Publish azure 中重启

[英]hosted service (background service) in asp.net core restart in each Publish azure

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

  public Task StartAsync(CancellationToken cancellationToken)
        {

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

            return Task.CompletedTask;
        }

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

谢谢你

有几种不同的选项可能更适合您的需求。 在这三个中,我会选择函数作为无声提及。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM