如何使用 hangfire 作业和 entityframework 添加 sqlserver 的数据库

how to add sqlserver's database using hangfire job and entityframework

嗨,我已经挂火了,运行 在 startup.cs 中,仪表板是 运行,但我想添加一个作业,每隔 minute.can U 向 sqlserver 数据库添加一个字段帮帮我?

我已经实现了一项服务 class 来将数据存储到数据库。这将用于重复工作

public interface ITestService{
    Task SaveData();
}
public class TestService : ITestService{

private readonly ApplicationDbContext _dbContext;

   public TestService(ApplicationDbContext dbContext)
   {
       _dbContext = dbContext;
   }

   public async Task SaveData()
   {
       _dbContext.Users.Add(new User
       {
           UserName = "testUser",
           Email = "testa@gmail.com"
       });

    await _dbContext.SaveChangesAsync();
    }
}

在 startup.cs 中的 ConfigureServices() 中,我已经在 dbcontext 和 serviceClass 中注册了 hangfire,这将把数据保存到数据库中

services.AddHangfire(x => x.UseSqlServerStorage(Configuration.GetConnectionString("DefaultConnection")));
services.AddHangfireServer();

services.AddTransient<ApplicationDbContext>(); //Your DbContext
services.AddTransient<ITestService, TestService>(); //Your Service to store data

在同一文件中将 configure 方法更改为,

 Configure(IApplicationBuilder app, IHostingEnvironment env, IRecurringJobManager recurringJobManager, ITestService testService)

在上面的方法中添加以下方法的调用

app.UseHangfireDashboard();

recurringJobManager.AddOrUpdate("First recurring job", () => testService.SaveData(), Cron.MinuteInterval(1)); //Instead of the Cron.MinuteInterval() you can use cron expressions