gpt4 book ai didi

asp.net - 运行后台进程/任务更新数据库

转载 作者:行者123 更新时间:2023-12-04 17:52:14 26 4
gpt4 key购买 nike

我正在尝试找到保持数据库更新的方法,但是执行它的方法会消耗大量时间,所以我尝试创建一个后台任务来完成它。

我搜索了解决方案并阅读了这篇关于运行后台进程的不同选项的文章:https://www.hanselman.com/blog/HowToRunBackgroundTasksInASPNET.aspx

但我不知道其中最好的解决方案是什么,就像我试图在应用程序外部执行它一样。我也找到了一些关于创建 Windows 服务的东西,但我不知道如何,我没有设法找到一些好的例子。

在每次访问应用程序时保持数据库更新而又不浪费它消耗的时间的最佳方法是什么?如果您能帮助我看到光明,我将不胜感激。

最佳答案

我对 FluentScheduler 非常满意,它负责处理我所有的关键任务调度。除了按计划解雇作业外,它还可以按需执行,如下所示:

// Define your job in its own class

public abstract class MyJob : IJob
{
public void Execute()
{
// Do stuff here...
}
}

// Schedule your job at startup

var runAt = DateTime.Today.AddHours(1); // 1am
if (runAt<DateTime.Now)
runAt = runAt.AddDays(1);

Schedule<MyJob>()
.WithName("My Job Name") // Job name, required for manually triggering
.NonReentrant() // Only allow one instance to run at a time
.ToRunOnceAt(runAt) // First execution date/time
.AndEvery(1).Days().At(runAt.Hour, runAt.Minute); // Run every day at the same time

// To manually trigger your job

ScheduledJobRegistry.RunTaskAsync("My Job Name");

我在 Windows 服务中运行计划作业,并使用 SignalR 作为在需要时从 MVC Web 应用程序远程触发它们的方法。

关于asp.net - 运行后台进程/任务更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43674243/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com