在ASP.NET MVC中安排每天上午8点运行一个方法的计划

4
如何在ASP.NET MVC中调用方法 例如,在一个方法中,输出一份出生人员的列表,并向他们发送祝贺消息。

1
也许“Windows任务计划程序”适合你? - Daniel Stackenland
1个回答

4
没有提供代码,但一般而言,我能想到几个选项:
  1. 内置的BackgroundService
    https://learn.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-3.1&tabs=visual-studio
BackgroundService中,您可以创建如下结构:
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
    while (!stoppingToken.IsCancellationRequested)
    {
        //Do work

        await Task.Delay(timeSpan, stoppingToken);
    }
}
  1. Quartz任务调度器,可能对您的任务来说有些过度。
    https://www.quartz-scheduler.net/

  2. 长时间运行的计时器(不建议使用)

  3. 在服务器上使用Windows任务计划程序触发API方法的任务。
    (由Fildor建议)


1
  1. 在服务器上的Windows任务计划程序中触发API方法。
- Fildor
是的,但那几乎不属于ASP.NET服务范畴。调度部分有点外部于服务之外。 - Siavash Rostami
那么?你要做的就是触发逻辑。所有代码都在 ASP.NET MVC 应用程序中。这样,您甚至可以在不触及应用程序代码或不必重新启动任何内容的情况下更改调度。 - Fildor
1
那是可以的。但是对我来说,使用任务计划程序比上面列出的任何选项都更方便(原因在上面的评论中)。所以请随意将其添加到您的答案中,或者不添加。由你决定。 - Fildor
1
@Fildor 好的,我也会添加这个。 - Siavash Rostami
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接