国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

2步輕松實現(xiàn)ASP.NET Core托管服務(wù)執(zhí)行定時任務(wù)

這篇具有很好參考價值的文章主要介紹了2步輕松實現(xiàn)ASP.NET Core托管服務(wù)執(zhí)行定時任務(wù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

最近接到一個新項目,需要在項目里添加一個后臺任務(wù),定時去發(fā)郵件通知客戶;由于是一個比較小型的項目,不希望引入Quartz.Net、Hangfire等太重的框架,同時也沒持久化要;尋覓了一下發(fā)現(xiàn)ASP.NET Core本身帶有托管服務(wù),可以執(zhí)行定時任務(wù)。ASP.NET Core提供了IHostedService接口,它使我們能夠創(chuàng)建后臺任務(wù)并在應(yīng)用程序的生命周期中管理這些任務(wù)。使用IHostedService接口,我們可以實現(xiàn)在指定時間間隔內(nèi)重復(fù)執(zhí)行的定時任務(wù)。本文將介紹如何使用IHostedService接口實現(xiàn)定時任務(wù)

使用步驟

1、實現(xiàn)IHostedService任務(wù)接口

首先,我們需要創(chuàng)建一個類來實現(xiàn)IHostedService接口。這個類將包含我們要執(zhí)行的定時任務(wù)的邏輯。下面是一個簡單的示例:

public?class?MyTaskService?:?IHostedService,?IDisposable
    {
        private readonly ILogger<MyTaskService> _logs;
        private Timer timer;
        public MyTaskService(ILogger<MyTaskService> logger)
        {
            this._logs=logger;
        }
        public Task StartAsync(CancellationToken cancellationToken)
        {
            _logs.LogInformation("開始任務(wù)執(zhí)行?。?);
            timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromSeconds(30));
????????????return?Task.CompletedTask;
        }
        public void DoWork(object state)
        {
            string dt = DateTime.Now.ToString();
            _logs.LogInformation("任務(wù)執(zhí)行中:"+ dt.ToString()+ "?。?);

        }
        public Task StopAsync(CancellationToken cancellationToken)
        {
            timer?.Change(Timeout.Infinite, 0);
            _logs.LogInformation("任務(wù)執(zhí)行結(jié)束!");
            return Task.CompletedTask;
        }
        public void Dispose()
        {
            timer?.Dispose();
        }
    }
??//歡迎關(guān)注公眾號:DOTNET開發(fā)跳槽,領(lǐng)取海量面試題。加微信號xbhpnet入群交流

簡而言之,這是一個自定義服務(wù),使用定時器每 30 秒執(zhí)行一次任務(wù)。它實現(xiàn)了 IHostedService 和 IDisposable 接口,并使用依賴注入 ILogger 記錄任務(wù)執(zhí)行的開始和結(jié)束。

2、注冊組件

使用定時任務(wù)需要將其注冊到ASP.NET Core應(yīng)用程序中,并根據(jù)需求。在Program.cs中,添加以下代碼:

 builder.Services.AddHostedService<MyTaskService>();

3、執(zhí)行效果

以上代碼全部寫完了,不需要引用任何包,很簡單吧。執(zhí)行效果如下:

2步輕松實現(xiàn)ASP.NET Core托管服務(wù)執(zhí)行定時任務(wù)

結(jié)語

本文提供了一個簡單的示例來演示如何使用IHostedService實現(xiàn)定時任務(wù),并將其注冊到ASP.NET Core應(yīng)用程序中。大家可以根據(jù)自己使用場景來配置相應(yīng)生命周期的時間間隔的定時任務(wù)。它的優(yōu)點是輕量級別,使用簡單;但是比較復(fù)雜的和批量的定時任務(wù)還是建議使用第三方定時任務(wù)組件,比如hangfire等主流工具。是不是很簡單?希望本文對你有所收獲。文章來源地址http://www.zghlxwxcb.cn/news/detail-455941.html

來源公眾號:DOTNET開發(fā)跳槽

到了這里,關(guān)于2步輕松實現(xiàn)ASP.NET Core托管服務(wù)執(zhí)行定時任務(wù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 在ASP.NET Core中輕松使用JwtBeare進行身份驗證

    在ASP.NET Core中輕松使用JwtBeare進行身份驗證

    JwtBearer簡介 首先要搞清楚什么是JwtBearer,JwtBearer是ASP.NET Core的OAuth 2.0 JWT Bearer身份驗證提供程序。它提供了對JWT令牌進行驗證的功能,然后允許將令牌中包含的聲明(claims)用于用戶身份驗證和授權(quán)控制。 Json Web Token (JWT)是一種Web標準,用于在不同系統(tǒng)間傳輸數(shù)據(jù)。JWT是一種

    2024年02月04日
    瀏覽(20)
  • Asp .Net Core 系列:集成 Ocelot+Consul實現(xiàn)網(wǎng)關(guān)、服務(wù)注冊、服務(wù)發(fā)現(xiàn)

    Asp .Net Core 系列:集成 Ocelot+Consul實現(xiàn)網(wǎng)關(guān)、服務(wù)注冊、服務(wù)發(fā)現(xiàn)

    Ocelot是一個開源的ASP.NET Core微服務(wù)網(wǎng)關(guān),它提供了API網(wǎng)關(guān)所需的所有功能,如路由、認證、限流、監(jiān)控等。 Ocelot是一個簡單、靈活且功能強大的API網(wǎng)關(guān),它可以與現(xiàn)有的服務(wù)集成,并幫助您保護、監(jiān)控和擴展您的微服務(wù)。 以下是Ocelot的一些主要功能: 路由管理:Ocelot允許您

    2024年01月17日
    瀏覽(24)
  • Asp .Net Core 系列: 集成 Consul 實現(xiàn) 服務(wù)注冊與健康檢查

    Asp .Net Core 系列: 集成 Consul 實現(xiàn) 服務(wù)注冊與健康檢查

    官網(wǎng):https://www.consul.io/ Consul 是一款開源的服務(wù)發(fā)現(xiàn)和配置管理工具,它能夠監(jiān)控應(yīng)用程序和服務(wù)之間的通信,并提供了一組 API 和 Web UI,用于管理服務(wù)和配置。 Consul 是分布式的、高可用的、可橫向擴展的,具備以下特性: 服務(wù)發(fā)現(xiàn):Consul 通過 DNS 或者 HTTP 接口使服務(wù)注冊

    2024年01月21日
    瀏覽(21)
  • 使用任務(wù)計劃開機啟動ASP.NET Core應(yīng)用程序

    使用任務(wù)計劃開機啟動ASP.NET Core應(yīng)用程序

    ASP.NET Core應(yīng)用程序現(xiàn)在是一個控制臺應(yīng)用程序,在Windows上直接雙擊啟動,但如果想讓開發(fā)完成的ASP.NET Core應(yīng)用程序開機啟動,可以將ASP.NET Core應(yīng)用程序修改成Windows服務(wù)運行,但這需要額外添加代碼,也可以使用IIS來托管ASP.NET Core應(yīng)用程序,但可能需要安裝一些支持IIS的組件

    2024年02月08日
    瀏覽(24)
  • 前后端分離,Asp.net core webapi 簡單 2 步,輕松配置跨域

    前后端分離,Asp.net core webapi 簡單 2 步,輕松配置跨域

    可以說,前后端分離已經(jīng)成為當今信息系統(tǒng)項目開發(fā)的主流軟件架構(gòu)模式,微服務(wù)的出現(xiàn),讓前后端分離發(fā)展更是迅速,大量優(yōu)秀的前端框架如 vue.js、react 的出現(xiàn),也讓前后端分離趨勢加快。 所謂的前后端分離軟件架構(gòu)模式,就是指將前端和后端的開發(fā)完全分離,后端負責

    2024年01月17日
    瀏覽(16)
  • 在ASP.NET Core微服務(wù)架構(gòu)下使用RabbitMQ如何實現(xiàn)CQRS模式

    在ASP.NET Core微服務(wù)架構(gòu)下使用RabbitMQ如何實現(xiàn)CQRS模式

    前言 在現(xiàn)代軟件開發(fā)中,微服務(wù)架構(gòu)和CQRS模式都是備受關(guān)注的技術(shù)趨勢。微服務(wù)架構(gòu)通過將應(yīng)用程序拆分為一系列小型、自治的服務(wù),提供了更好的可伸縮性和靈活性。而CQRS模式則通過將讀操作和寫操作分離,優(yōu)化了系統(tǒng)的性能和可維護性。本文小編將為大家介紹如何在

    2024年01月16日
    瀏覽(24)
  • Asp .Net Core 系列:集成 Ocelot+Nacos+Swagger+Cors實現(xiàn)網(wǎng)關(guān)、服務(wù)注冊、服務(wù)發(fā)現(xiàn)

    Asp .Net Core 系列:集成 Ocelot+Nacos+Swagger+Cors實現(xiàn)網(wǎng)關(guān)、服務(wù)注冊、服務(wù)發(fā)現(xiàn)

    什么是 Ocelot ? Ocelot是一個開源的ASP.NET Core微服務(wù)網(wǎng)關(guān),它提供了API網(wǎng)關(guān)所需的所有功能,如路由、認證、限流、監(jiān)控等。 Ocelot是一個簡單、靈活且功能強大的API網(wǎng)關(guān),它可以與現(xiàn)有的服務(wù)集成,并幫助您保護、監(jiān)控和擴展您的微服務(wù)。 以下是Ocelot的一些主要功能: 路由管理

    2024年01月19日
    瀏覽(25)
  • ASP.NET Core如何知道一個請求執(zhí)行了哪些中間件?

    ASP.NET Core如何知道一個請求執(zhí)行了哪些中間件?

    需要添加兩個Nuget包分別是: Microsoft.AspNetCore.MiddlewareAnalysis 和 Microsoft.Extensions.DiagnosticAdapter ,前者是分析記錄中間件核心代碼實現(xiàn)后者是用來接收日志輸出的,由于是用的DiagnosticSource方式記錄日志,所以需要使用DiagnosticListener對象的SubscribeWithAdapter方法來訂閱。 這個適配器

    2023年04月09日
    瀏覽(100)
  • 《深入淺出.NET框架設(shè)計與實現(xiàn)》筆記6.2——ASP.NET Core應(yīng)用程序多種運行模式之二——IIS 服務(wù)承載

    ?ASP.NET Core應(yīng)用程序可以在多種運行模式下運行,包括自宿主(Self-Hosting)、IIS服務(wù)承載、桌面應(yīng)用程序、服務(wù)承載。 因此選擇和時的模式很重要。 IIS 服務(wù)承載 將 ASP.NET Core 應(yīng)用程序托管在 Internet Information Services (IIS) 中。 利用 IIS 提供的高級功能,如負載均衡、HTTPS 支持和

    2024年04月26日
    瀏覽(20)
  • ASP.NET Core SignalR 系列(二)- 中心(服務(wù)端)

    ASP.NET Core SignalR 系列(二)- 中心(服務(wù)端)

    本章將和大家分享 ASP.NET Core SignalR 中的中心(服務(wù)端)。 本文大部分內(nèi)容摘自微軟官網(wǎng):https://learn.microsoft.com/zh-cn/aspnet/core/signalr/hubs?view=aspnetcore-7.0 廢話不多說,我們直接來看一個Demo,Demo的目錄結(jié)構(gòu)如下所示: 本Demo的Web項目為ASP.NET Core Web 應(yīng)用程序( 目標框架為.NET 7.0

    2024年02月13日
    瀏覽(94)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包