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>

        C#任務(wù)調(diào)度框架Quartz.NET

        共 1404字,需瀏覽 3分鐘

         ·

        2021-01-17 08:58

        什么是定時(shí)任務(wù)?

        最近恰巧有類似的需求, 需要做一個(gè)應(yīng)用程序服務(wù), 每天定時(shí)給服務(wù)器上傳采集的數(shù)據(jù)。
        在沒(méi)有任務(wù)框架的使用前提下, 如果我們想要實(shí)現(xiàn)類似的需求,可以自己寫(xiě)一個(gè)計(jì)時(shí)器, 然后24小時(shí)運(yùn)行,達(dá)到指定的時(shí)間就運(yùn)行。但是這樣不僅擴(kuò)展性差, 而且不易于維護(hù)。在定時(shí)任務(wù)這塊, 也有非常的多的框架支持,開(kāi)箱即用, 那么下面將主要介紹一下Quartz.NET框架。

        Github地址:?https://github.com/quartznet/quartznet


        Quartz.NET介紹

        Quartz.NET是一個(gè)Github開(kāi)源項(xiàng)目,用于創(chuàng)建一個(gè)免費(fèi)商業(yè)用途的作業(yè)調(diào)度框架。
        注:支持 .NET Core/.NET Standard 2.0 和 .NET 框架 4.6.1 及更晚版本。

        Quartz.NET入門(mén)

        在我們使用定時(shí)任務(wù)框架的之前, 首先我們需要確定的是, 它大概具備哪些內(nèi)容。

        • 靈活的指定某項(xiàng)任務(wù)

        • 靈活的啟動(dòng)時(shí)間配置

        • 傳遞參數(shù)并且監(jiān)聽(tīng)

        了解了這些基礎(chǔ)概念之后, 我們便開(kāi)始學(xué)習(xí)如何在Quartz.NET當(dāng)中使用這些功能。

        1.創(chuàng)建一個(gè)任務(wù)
        任務(wù)是一個(gè)抽象的概念, 實(shí)際來(lái)說(shuō)它應(yīng)該指的是某種任務(wù), 例如: 想要每3秒輸入一個(gè)字符串, 那么我們就可以這樣做。

        • 下面演示創(chuàng)建了一個(gè)類, 它繼承于Quartz中的IJob接口, 實(shí)現(xiàn)了Execute方法, 任務(wù)就是輸出一個(gè)字符串。

        • 創(chuàng)建任務(wù)

        2.配置任務(wù)的參數(shù)
        為任務(wù)配置一個(gè)觸發(fā)條件及相關(guān)的參數(shù)。當(dāng)該配置的參數(shù)一旦達(dá)到了條件, 上面的任務(wù)將被觸發(fā)。

        • 下面演示創(chuàng)建了一個(gè)ITrigger實(shí)例, 設(shè)置每3秒執(zhí)行一次

        3.啟動(dòng)任務(wù)
        創(chuàng)建一個(gè)任務(wù)調(diào)度器, 將任務(wù)和配置參數(shù)添加到調(diào)度器當(dāng)中。

        4.實(shí)際效果
        在上面的代碼中,我們創(chuàng)建了一個(gè)任務(wù)輸出一段字符串, 然后為該任務(wù)創(chuàng)建了一個(gè)配置, 每3秒執(zhí)行一次, 那么實(shí)際效果會(huì)每間隔3秒輸出:

        更多配置

        • 特定時(shí)間觸發(fā),重復(fù)觸發(fā),單次觸發(fā), 觸發(fā)次數(shù),開(kāi)始時(shí)間, 結(jié)束時(shí)間。這些在框架當(dāng)中都有該功能

        • 觸發(fā)器表達(dá)式 ,例如: 每周一上午, 或每周一、周三、周五等等
          下面是一些表達(dá)式及其含義的示例
          示例 1 - 創(chuàng)建每 5 分鐘觸發(fā)一次的觸發(fā)器的表達(dá)式

        ? ? ? ?示例 2 - 創(chuàng)建每 5 分鐘觸發(fā)一次的觸發(fā)器的表達(dá)式,在分鐘后 10 秒(即上午 10:00:10、上午 10:05:10 等)。

        ? ? ? ?示例 3 - 用于創(chuàng)建觸發(fā)器的表達(dá)式,該觸發(fā)器在每個(gè)星期三和周五的 10:30、11:30、12:30 和 13:30 觸發(fā)。

        ? ? ? ?示例 4 - 創(chuàng)建觸發(fā)器的表達(dá)式,在每月 5 日到 20 日上午 8 點(diǎn)到上午 10 點(diǎn)之間每半小時(shí)觸發(fā)一次。請(qǐng)注意,觸發(fā)器不會(huì)于上午 10:00 觸發(fā),只是在 8:00、8:30、9:00 和 9:30


        • 監(jiān)聽(tīng)器: 可以檢測(cè)你的任務(wù)執(zhí)行狀態(tài): 是否工作, 是否錯(cuò)誤,是否已完成等

        關(guān)于具體的使用方法, 在文檔中有詳細(xì)的介紹:
        https://www.quartz-scheduler.net/documentation/quartz-3.x/quick-start.html

        瀏覽 193
        點(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>
            少妇高潮zzzzzzzy一avhd | 91在线无码精品秘 国产血腥 | 女人18片毛片60分钟黃菲菲 | 欧美性受XXXX黑人XYX性爽 | 成人在线三级片 | 在线免费操逼 | 中文字幕Va一区二区三区 | 女同性精品亚洲 | 凹凸69堂国产成人精品 | 男女激情在线午夜视频 |