【发布时间】:2021-03-22 15:23:40
【问题描述】:
我想要一个使用 .net core 3.0 运行 evrey 5 秒的存储过程。
我一直在使用 BackgroundService,当我尝试调用存储过程时,我得到“线程 0xcec 已退出代码”
{
public class ImportScope : BackgroundService
{
private readonly BlockContext _context;
private readonly ILogger<ImportScope> _logger;
private Timer timer;
private readonly IServiceScopeFactory _scopeFactory;
public ImportScope(ILogger<ImportScope> logger, IServiceScopeFactory scopeFactory)
{
_logger = logger;
_scopeFactory = scopeFactory;
}
protected override Task ExecuteAsync(CancellationToken stoppingToken)
{
var scope = _scopeFactory.CreateScope();
var blockContext = scope.ServiceProvider.GetRequiredService<BlockContext>();
timer = new Timer(o => blockContext.CourseExtentions.FromSqlRaw("exec stored_proc_wanted")) , null, TimeSpan.Zero, TimeSpan.FromSeconds(5));
return Task.CompletedTask;
}
}
}
【问题讨论】:
标签: entity-framework stored-procedures .net-core background-service