业务很简单,站点启动后,用一个后台服务定时同步数据,写入SqlLite数据表
`private readonly IServiceProvider _service;
public KlineStoryLoader(IServiceProvider service)
{
_service = service;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
await Task.Yield();
try
{
using var scope = _service.CreateScope();
var dataService = scope.ServiceProvider.GetService<IKlineStoryService>();
await dataService.SyncDataAsync();
}
catch (System.Exception err)
{
Logger.WriteLog(LogLevel.Error, "同步异常", err);
}
await Task.Delay(1 * 1000);
}
}`
注意黑体部分,不使用这种方式,会导致SqlLite在被读取时,同步写入数据失败:
using var scope = _service.CreateScope();
var dataService = scope.ServiceProvider.GetService<IKlineStoryService>();
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。