亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 IHostedService 檢查數據庫

使用 IHostedService 檢查數據庫

C#
慕的地8271018 2022-06-19 10:13:17
我想創建一個一直在后臺運行的服務。該服務將始終檢查我的數據庫中的表。我正在使用 asp.net core 2.1 做它,IHostedService我的問題是:如果我使用AddSingleton我不能DBContext在.RepositoryAddScopedHostedService有什么方法可以解決這個問題,或者有更好的方法嗎?
查看完整描述

1 回答

?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

這個鏈接對我幫助很大。


IServiceScopeFactory在內部注入HostedService可以提供解決問題的實例。不確定這是否是更好的方法。如果你們知道更好的方法,請發表評論:)


這是代碼。


托管服務實現:


public class TestService : HostedService

{

    private readonly IServiceScopeFactory _serviceScopeFactory;


    public TestService(IServiceScopeFactory serviceScopeFactory)

    {

        _serviceScopeFactory = serviceScopeFactory;          

    }


    protected override async Task ExecuteAsync(CancellationToken cancellationToken)

    {

        using (var scope = _serviceScopeFactory.CreateScope())

        {

            IMyService myScopedService = scope.ServiceProvider.GetRequiredService<IMyService>();


            while (!cancellationToken.IsCancellationRequested)

            {

                await myScopedService.Execute();

                await Task.Delay(TimeSpan.FromSeconds(5), cancellationToken);

            }

        }


    }

}


查看完整回答
反對 回復 2022-06-19
  • 1 回答
  • 0 關注
  • 187 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號