1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        ASP.NET Core開(kāi)源任務(wù)調(diào)度框架Hangfire實(shí)戰(zhàn)演練

        共 1661字,需瀏覽 4分鐘

         ·

        2021-05-01 20:45


        一、需求背景

        接著上一篇文章《軟件需求分析和設(shè)計(jì)從0-1方法論,你真的掌握了嗎?》后臺(tái)有學(xué)員跟阿笨留言,還是需要具體了解一下最后的技術(shù)實(shí)現(xiàn)細(xì)節(jié)。那么我們先回顧一下在上一節(jié)微課堂中我們拋出了的一個(gè)需求場(chǎng)景:用戶(hù)購(gòu)買(mǎi)車(chē)票后,在乘車(chē)日期前一個(gè)半小時(shí)和一個(gè)小時(shí)分別給用戶(hù)發(fā)送一條微信乘車(chē)提醒通知。

        這種需求我們可以進(jìn)行橫向的思維發(fā)散擴(kuò)展開(kāi)來(lái),細(xì)想一下其實(shí)還是比較多場(chǎng)景的,比如因?yàn)橄到y(tǒng)中執(zhí)行某一個(gè)具體業(yè)務(wù)操作點(diǎn)后需要在不定的時(shí)間段間延遲觸發(fā)執(zhí)行相應(yīng)的具體Job任務(wù)。(好好理解一下剛才阿笨說(shuō)的這句話,給你五分鐘的時(shí)候結(jié)合一下自己的實(shí)際工作場(chǎng)景)。。大家可以先自己獨(dú)立思考想一下,如果是你這樣的一個(gè)業(yè)務(wù)場(chǎng)景,你該怎么去設(shè)計(jì)和實(shí)現(xiàn),以及在這過(guò)程中需要注意的那些問(wèn)題點(diǎn)?

        在文章中阿笨給大家?guī)追N技術(shù)實(shí)現(xiàn)方案,

        方案一:數(shù)據(jù)庫(kù)定時(shí)輪詢(xún)。—基于數(shù)據(jù)庫(kù)消息隊(duì)列表方案。

        方案二、MQ延遲隊(duì)列。

        方案三、定時(shí)調(diào)度job任務(wù)框架。

        那今天微課堂阿笨將帶領(lǐng)大家基于我們推薦的方案三來(lái)來(lái)進(jìn)行講解,形成的最終的一個(gè)技術(shù)落地實(shí)現(xiàn)吧。

        一位不知名的講師說(shuō)過(guò)有這么一句話:一個(gè)好的技術(shù)選型有時(shí)候真的可以更加簡(jiǎn)單、方便的解決我們實(shí)際中的復(fù)雜業(yè)務(wù)問(wèn)題。

        二、Hangfire快速介紹

        一般定時(shí)調(diào)度job任務(wù)框架,你也可以自己封裝實(shí)現(xiàn),也可以選擇開(kāi)源的有很多,那么今天的主角就是Hangfire。

        Hangfire是一個(gè)開(kāi)源的.NET/.NET Core任務(wù)調(diào)度框架,提供了內(nèi)置集成化的控制臺(tái),可以直觀明了的查看作業(yè)調(diào)度情況,并且Hangfire不需要依賴(lài)于單獨(dú)的應(yīng)用程序執(zhí)行(如:windows服務(wù),window計(jì)劃)。并且支持持久性存儲(chǔ)。

        阿笨用自己的一句話總結(jié)Hangfire的特點(diǎn)就是:集成度高,持久化存儲(chǔ),簡(jiǎn)單不簡(jiǎn)約,非常棒棒棒。開(kāi)箱即用這難道不就是我們一直想要得到的自行車(chē)?

        三、為什么選擇Hangfire

        主要有亮點(diǎn)如下

        1)、可以通過(guò)程序的動(dòng)態(tài)根據(jù)指定的執(zhí)行計(jì)劃新增/創(chuàng)建我們的要執(zhí)行的具體Job任務(wù)。
        2)、調(diào)度Job任務(wù)支持持久化存儲(chǔ),極大的保證系統(tǒng)的可用性。

        四、Hangfire運(yùn)用落地實(shí)現(xiàn)

        第一步:配置連接字符串,目前就是持久化我們的作業(yè)Job任務(wù),這里我們采用MS SQLSERVER,持久化方式有很多種數(shù)據(jù)庫(kù)支持,具體大家看一下官網(wǎng)。

        關(guān)于連接字符串需要注意的是可以手動(dòng)單獨(dú)新創(chuàng)建一個(gè)用于專(zhuān)門(mén)存儲(chǔ)作業(yè)調(diào)度任務(wù)的Hangfire數(shù)據(jù)庫(kù),也可以使用現(xiàn)有存在的業(yè)務(wù)的數(shù)據(jù)庫(kù)。如果是不存在的數(shù)據(jù)庫(kù),記得一定要手動(dòng)在SQL SERVER中進(jìn)行創(chuàng)建噢。

        阿笨個(gè)人的建議還是建議大家單獨(dú)新建一個(gè)獨(dú)立的Job數(shù)據(jù)庫(kù)也我們的業(yè)務(wù)數(shù)據(jù)庫(kù)進(jìn)行隔離吧。



        第二步:Hangfire有多種執(zhí)行任務(wù)類(lèi)型,阿笨認(rèn)為其中有兩種類(lèi)型比較常用和重要。

        1)、  固定式周期作業(yè)任務(wù)Job,意思就是每個(gè)周期都執(zhí)行。比如:每分鐘,l每小時(shí),每天等等這里執(zhí)行計(jì)劃。




        2)、延遲性的作業(yè)任務(wù)Job,意思就是延遲時(shí)間執(zhí)行(這種任務(wù)只執(zhí)行一次就結(jié)束了)。比如:推遲一個(gè)小時(shí)執(zhí)行,到了指定固定的時(shí)間點(diǎn)才執(zhí)行。



        第三步:關(guān)于方式hangifre的面板身份訪問(wèn)配置,可以自己根據(jù)指定的管理員root賬號(hào)訪問(wèn)Hangfire面板。


         F5運(yùn)行后打開(kāi)hangfire后臺(tái)訪問(wèn)地址,http://localhost:36352/hangfire,輸入用戶(hù)名和密碼:root/123456即可。





        五、源代碼示例下載

        非常感謝對(duì)【跟著阿笨一起玩NET】的支持,有問(wèn)題微信公眾號(hào)回復(fù)wx關(guān)鍵字,加阿笨的個(gè)人微信號(hào)。

        《ASP.NET Core開(kāi)源任務(wù)調(diào)度框架Hangfire實(shí)戰(zhàn)演練》源碼下載(注意下載地址區(qū)分大小寫(xiě)哦)

        關(guān)注公眾號(hào)回復(fù)關(guān)鍵字提取碼:c3rl


        騰訊課堂



        網(wǎng)易云課堂



        不信的話,掃一掃



        瀏覽 25
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            一区二区三区精品视频 | 久久久久成人无码 | 国产伦精品一区二区三区妓女 | 久久精品在线视频 | 啊灬啊灬啊灬快灬高潮了听书 | 韩国一级影院 | 亚洲人成人无码网www国产 | 在线视频亚洲一区 | 天堂AV中文在线 | 久久无码一区二区三区 |