Разработих BackgroundService, в началото работи добре. Но по-късно след 20 минути това се отменя по някаква причина, която не знам. Конкретно за този случай "работата" трябва да е безкрайна и никога да не завършва. Моля, можете ли да дадете някаква идея? Ще го оценя
public class CheckItemsService : BackgroundService
{
private IConfiguration Configuration { get; }
public CheckItemsService(IConfiguration configuration)
{
Configuration = configuration;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
stoppingToken.Register(() => Log.Information("Job is stopping"));
while (!stoppingToken.IsCancellationRequested)
{
await UpdateItems();
await Task.Delay(1000 * 60, stoppingToken);
}
}
private async Task UpdateItems()
{
var optionsBuilder = new DbContextOptionsBuilder<WalletContext>();
optionsBuilder.UseSqlServer(Configuration.GetSection("ConnectionStrings:Default").Value);
DbContext _context = new DbContext(optionsBuilder.Options);
var items = await _context.EntityX.ToListAsync();
foreach (var item in items)
{
item.ModificationDate = DateTime.Now;
}
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateException dbEx)
{
Log.Information(dbEx.Message);
}
}
}
StopAsync(CancellationToken)
, заменете този метод и го накарайте да се регистрира, ако е така. Ако е така, това означава, че хостът се изключва по някаква причина. - person Scott Chamberlain   schedule 18.08.2019