如何使用 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
嗨,我已经挂火了,运行 在 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