<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Quartz.NET 2.0 學習筆記(3) :通過配置文件實現任務調度

      Quartz.NET 項目地址 http://quartznet.sourceforge.net/

      Quartz.NET 2.0 學習筆記(1) :Quartz.NET簡介

      Quartz.NET 2.0 學習筆記(2) :和1.0的幾點不同

      Quartz.NET 2.0 學習筆記(3) :通過配置文件實現任務調度

      Quartz.NET 2.0 學習筆記(4) :cron表達式

      Quartz.NET 2.0 學習筆記(5) :實例創建Windows服務實現任務調度

      Quartz.NET 2.0 可以很方便的通過配置的xml文件方式實現靈活的任務調度配置(1.0版本就已經支持了,只是配置文件格式有些變化)

      默認的quartz任務配置文件為quartz_jobs.xml,在quartz服務的根目錄下,可以通過quartz.config中quartz.plugin.xml.fileNames = ~/quartz_jobs.xml進行設置

      默認quartz.config文件結構如下

      quartz.config
       1 # You can configure your scheduler in either <quartz> configuration section
       2 # or in quartz properties file
       3 # Configuration section has precedence
       4 
       5 quartz.scheduler.instanceName = ServerScheduler
       6 
       7 # configure thread pool info
       8 quartz.threadPool.type = Quartz.Simpl.SimpleThreadPool, Quartz
       9 quartz.threadPool.threadCount = 10
      10 quartz.threadPool.threadPriority = Normal
      11 
      12 # job initialization plugin handles our xml reading, without it defaults are used
      13 quartz.plugin.xml.type = Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin, Quartz
      14 quartz.plugin.xml.fileNames = ~/quartz_jobs.xml
      15 
      16 # export this server to remoting context
      17 quartz.scheduler.exporter.type = Quartz.Simpl.RemotingSchedulerExporter, Quartz
      18 quartz.scheduler.exporter.port = 555
      19 quartz.scheduler.exporter.bindName = QuartzScheduler
      20 quartz.scheduler.exporter.channelType = tcp
      21 quartz.scheduler.exporter.channelName = httpQuartz

      首先看一下簡單的quartz_jobs.xml示例

      quartz_jobs.xml
       1 <?xml version="1.0" encoding="UTF-8"?>
       2 
       3 <!-- This file contains job definitions in schema version 2.0 format -->
       4 
       5 <job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0">
       6 
       7   <processing-directives>
       8     <overwrite-existing-data>true</overwrite-existing-data>
       9   </processing-directives>
      10 
      11   <schedule>
      12 
      13     <job>
      14         <name>sampleJob</name>
      15         <group>sampleGroup</group>
      16         <description>Sample job for Quartz Server</description>
      17         <job-type>Quartz.Server.SampleJob, Quartz.Server</job-type>
      18         <durable>true</durable>
      19         <recover>false</recover>
      20     </job>
      21     <trigger>
      22       <simple>
      23         <name>sampleSimpleTrigger</name>
      24         <group>sampleSimpleGroup</group>
      25         <description>Simple trigger to simply fire sample job</description>
      26         <job-name>sampleJob</job-name>
      27         <job-group>sampleGroup</job-group>
      28         <misfire-instruction>SmartPolicy</misfire-instruction>
      29         <repeat-count>-1</repeat-count>
      30         <repeat-interval>10000</repeat-interval>
      31       </simple>
      32     </trigger>
      33 
      34     <job>
      35       <name>CommissionJob</name>
      36       <group>CommissionJob</group>
      37       <description>Sample job for Quartz Server</description>
      38       <job-type>Settlement.Jobs.CommissionJob, Settlement.Jobs</job-type>
      39       <durable>true</durable>
      40       <recover>false</recover>
      41     </job>
      42      <trigger>
      43       <cron>
      44         <name>sampleSimpleTrigger2</name>
      45         <group>sampleSimpleTrigger2</group>
      46         <job-name>sampleJob2</job-name>
      47         <job-group>sampleGroup2</job-group>
      48         <cron-expression>0/10 * * * * ?</cron-expression>
      49       </cron>
      50     </trigger>
      51   </schedule>
      52 </job-scheduling-data>

      job-scheduling-data 為跟節點不再解釋

      processing-directives這個節點官方給的示例中就存在,干啥用的沒有深入了解,保持默認配置即可

      schedule任務調度集合可以配置多個但貌似只有第一個的配置起作用,如何讓多個schedule同時起作用希望知道的童鞋告訴下,不勝感激。所有的job和trigger均放在這個節點下面

      job 任務,其實就是1.x版本中的<job-detail>,這個節點是用來定義每個具體的任務的,多個任務請創建多個job節點即可

      • name(必填) 任務名稱,同一個group中多個job的name不能相同,若未設置group則所有未設置group的job為同一個分組,如:<name>sampleJob</name>
      • group(選填) 任務所屬分組,用于標識任務所屬分組,如:<group>sampleGroup</group>
      • description(選填) 任務描述,用于描述任務具體內容,如:<description>Sample job for Quartz Server</description>
      • job-type(必填) 任務類型,任務的具體類型及所屬程序集,格式:實現了IJob接口的包含完整命名空間的類名,程序集名稱,如:<job-type>Quartz.Server.SampleJob, Quartz.Server</job-type>
      • durable(選填) 具體作用不知,官方示例中默認為true,如:<durable>true</durable>
      • recover(選填) 具體作用不知,官方示例中默認為false,如:<recover>false</recover>

      trigger 任務觸發器,用于定義使用何種方式出發任務(job),同一個job可以定義多個trigger ,多個trigger 各自獨立的執行調度,每個trigger 中必須且只能定義一種觸發器類型(calendar-interval、simple、cron)

      calendar-interval 一種觸發器類型,使用較少,此處略過

      simple 簡單任務的觸發器,可以調度用于重復執行的任務

      • name(必填) 觸發器名稱,同一個分組中的名稱必須不同
      • group(選填) 觸發器組
      • description(選填) 觸發器描述
      • job-name(必填) 要調度的任務名稱,該job-name必須和對應job節點中的name完全相同
      • job-group(選填) 調度任務(job)所屬分組,該值必須和job中的group完全相同
      • start-time(選填) 任務開始執行時間utc時間,北京時間需要+08:00,如:<start-time>2012-04-01T08:00:00+08:00</start-time>表示北京時間2012年4月1日上午8:00開始執行,注意服務啟動或重啟時都會檢測此屬性,若沒有設置此屬性或者start-time設置的時間比當前時間較早,則服務啟動后會立即執行一次調度,若設置的時間比當前時間晚,服務會等到設置時間相同后才會第一次執行任務,一般若無特殊需要請不要設置此屬性
      • repeat-count(必填)  任務執行次數,如:<repeat-count>-1</repeat-count>表示無限次執行,<repeat-count>10</repeat-count>表示執行10次
      • repeat-interval(必填) 任務觸發間隔(毫秒),如:<repeat-interval>10000</repeat-interval> 每10秒執行一次

      cron復雜任務觸發器--使用cron表達式定制任務調度(強烈推薦)

      • name(必填) 觸發器名稱,同一個分組中的名稱必須不同
      • group(選填) 觸發器組
      • description(選填) 觸發器描述
      • job-name(必填) 要調度的任務名稱,該job-name必須和對應job節點中的name完全相同
      • job-group(選填) 調度任務(job)所屬分組,該值必須和job中的group完全相同
      • start-time(選填) 任務開始執行時間utc時間,北京時間需要+08:00,如:<start-time>2012-04-01T08:00:00+08:00</start-time>表示北京時間2012年4月1日上午8:00開始執行,注意服務啟動或重啟時都會檢測此屬性,若沒有設置此屬性,服務會根據cron-expression的設置執行任務調度;若start-time設置的時間比當前時間較早,則服務啟動后會忽略掉cron-expression設置,立即執行一次調度,之后再根據cron-expression執行任務調度;若設置的時間比當前時間晚,則服務會在到達設置時間相同后才會應用cron-expression,根據規則執行任務調度,一般若無特殊需要請不要設置此屬性
      • cron-expression(必填) cron表達式,如:<cron-expression>0/10 * * * * ?</cron-expression>每10秒執行一次

      了解了Quartz.NET 2.0的quartz_jobs.xml配置后就可以在項目中引用Quartz.dll文件然后實現IJob接口,根據實際項目中的需要靈活配置quartz_jobs,不需要再進行額外的開發,實現靈活的多任務調度,需要注意的是修改了quartz_jobs.xml文件后,quartz服務默認不會重新加載該文件,若要讓修改后的文件生效需要重啟下服務才行,另外start-time屬性請一定慎用,若實在需要可以在使用完成后立即刪除掉該屬性否則可能造成很嚴重的后果(親身經歷血的教訓,呵呵)

      介紹的比較膚淺,本身也沒有過深入的研究,只是根據日常使用經驗自己摸索出來的,整理了一下應付日常簡單應用足以

      下一篇介紹下如何使用Quartz創建自己的Windows服務,以及實例實現IJob接口及根據quartz_jobs.xml實現任務調度

       

      PS:

      官網(http://quartznet.sourceforge.net/)下載的代碼服使用Topshelf創建的,支持跨平臺創建服務
      使用方法:控制臺下,安裝服務 Quartz.Server.exe install 卸載服務 Quartz.Server.exe uninstall
      功能很強大,使用起來很方便,當然了肯定不支持使用sc命令創建服務了,但很多時候我們并不需要靈活和強大的東西,簡簡單單,夠用就中,對于我來說用普通的windows服務足以

      posted @ 2012-04-14 13:28  懶惰的肥兔  閱讀(26494)  評論(11)    收藏  舉報
      主站蜘蛛池模板: 湖南省| 国产中文字幕在线一区| 97精品久久久大香线焦| 日韩中文字幕高清有码| 中文字幕有码无码AV| 免费看黄片一区二区三区| 色综合色综合色综合久久| 国产女同一区二区在线| 性色av一区二区三区精品| 免费观看欧美猛交视频黑人| 91精品国产一二三产区| 国产不卡在线一区二区| 日本一道一区二区视频| 亚洲综合色区另类av| 国产一区韩国主播| 亚洲精品无码久久毛片| 377人体粉嫩噜噜噜| 激情综合网五月激情五月| 丝袜高潮流白浆潮喷在线播放| 亚洲成在人线AV品善网好看| 亚洲一区二区三区丝袜| 波多野结衣一区二区免费视频| 好吊视频专区一区二区三区| 亚洲熟妇无码八av在线播放| 一色桃子中出欲求不满人妻| 日韩有码中文字幕国产| XXXXXHD亚洲日本HD| 国产成人av一区二区三| 久久被窝亚洲精品爽爽爽| 欧美精品一区二区三区中文字幕| 亚洲日韩精品一区二区三区| 国产自产视频一区二区三区| av深夜免费在线观看| 日本一区二区在线高清观看| 一区二区三区四区五区自拍| 欧美成人精品一级在线观看| 苍井空一区二区三区在线观看| 瓦房店市| 五月丁香啪啪| 天天摸夜夜摸夜夜狠狠添| 欧美国产综合视频|