您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么配置jobs和triggers”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么配置jobs和triggers”吧!
Quartz相關的配置有三個quartz.config、quartz_jobs.xml、log4net.config。其中quartz.config是基本的配置, quartz_jobs.xml是相關的job 任務配置文件,log4net.config則是日志記錄的配置。
一、quartz配置
quartz.config ,是Quartz.NET是基本的配置,主要是配置quartz_jobs.xml 的路徑,及其他相關的參數。默認的quartz任務配置文件為quartz_jobs.xml,在quartz服務的根目錄下,可以通過quartz.config中quartz.plugin.xml.fileNames = ~/quartz_jobs.xml進行設置。
# You can configure your scheduler in either <quartz> configuration section
# or in quartz properties file
# Configuration section has precedence
quartz.scheduler.instanceName = ServerScheduler
# configure thread pool info
quartz.threadPool.type = Quartz.Simpl.SimpleThreadPool, Quartz
quartz.threadPool.threadCount = 10
quartz.threadPool.threadPriority = Normal
# job initialization plugin handles our xml reading, without it defaults are used
quartz.plugin.xml.type = Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin, Quartz
quartz.plugin.xml.fileNames = ~/quartz_jobs.xml
# export this server to remoting context
quartz.scheduler.exporter.type = Quartz.Simpl.RemotingSchedulerExporter, Quartz
quartz.scheduler.exporter.port = 555
quartz.scheduler.exporter.bindName = QuartzScheduler
quartz.scheduler.exporter.channelType = tcp
quartz.scheduler.exporter.channelName = httpQuartz
二、任務配置
quartz_jobs.xml,是相關的job 任務配置文件。主要是有job和trigger兩個主要的節點。
<?xml version="1.0" encoding="UTF-8"?>
<!-- This file contains job definitions in schema version 2.0 format -->
<job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0">
<processing-directives>
<overwrite-existing-data>true</overwrite-existing-data>
</processing-directives>
<schedule>
<!--定義Job1-->
<job>
<name>Job1</name>
<group>JobGroup</group>
<description>Quartz Job1</description>
<job-type>Quartz.Net.Jobs.Job1,Quartz.Net.Jobs</job-type>
<durable>true</durable>
<recover>false</recover>
</job>
<!--定義Job2-->
<job>
<name>Job2</name>
<group>JobGroup</group>
<description>Quartz Job2</description>
<job-type>Quartz.Net.Jobs.Job2,Quartz.Net.Jobs</job-type>
<durable>true</durable>
<recover>false</recover>
</job>
<!--定義Job1 觸發器 每30秒執行一次Job1任務-->
<trigger>
<cron>
<name>Job1Trigger</name>
<group>JobTriggerGroup</group>
<job-name>Job1</job-name>
<job-group>JobGroup</job-group>
<cron-expression>0/30 * * * * ?</cron-expression>
</cron>
</trigger>
<!--定義Job2 觸發器 每分鐘執行一次Job2任務-->
<trigger>
<cron>
<name>Job2Trigger1</name>
<group>JobTriggerGroup</group>
<job-name>Job2</job-name>
<job-group>JobGroup</job-group>
<cron-expression>0 * * * * ?</cron-expression>
</cron>
</trigger>
</schedule>
</job-scheduling-data>
job 任務,這個節點是用來定義每個具體的任務的,多個任務請創建多個job節點即可。
1. name 任務名稱,同一個group中多個job的name不能相同,如:<name>Job1</name>
2. group 任務所屬分組,用于標識任務所屬分組,如:<group>JobGroup</group>
3. job-type 任務的具體類型及所屬程序集,實現了IJob接口的包含完整命名空間的類名,程序集名稱,如: <job-type>Quartz.Net.Jobs.Job1,Quartz.Net.Jobs</job-type>
其余節點按照默認設置即可。
trigger 任務觸發器,主要定義在什么時間,以何種方式觸發任務(job),同一個job可以定義多個trigger ,各個trigger 各自獨立的執行調度,每個trigger 中必須定義一種觸發器類型(calendar-interval、simple、cron)。
calendar-interval使用比較少,一般都是simple和cron,這里就不做說明。
simple 簡單任務的觸發器,可以調度用于重復執行的任務
1. name 觸發器名稱,同一個分組中的名稱必須不同
2. group 觸發器組
3. job-name 要調度的任務名稱,該job-name必須和對應job節點中的name完全相同 ,如:<job-name>Job1</job-name>
4. job-group 調度任務(job)所屬分組,該值必須和job中的group完全相同,如:<job-group>JobGroup</job-group>
5. repeat-count 任務執行次數,如:<repeat-count>-1</repeat-count>表示無限次執行,<repeat-count>10</repeat-count>表示執行10次
6. repeat-interval 任務觸發間隔,單位為毫秒,如:<repeat-interval>10000</repeat-interval> 每10秒執行一次
cron 復雜任務觸發器,主要使用cron表達式定制任務調度,一般用的較多的都是cron觸發器。
1. name 觸發器名稱,同一個分組中的名稱必須不同
2. group 觸發器組
3. description 觸發器描述
4. job-name 要調度的任務名稱,注意該job-name必須和對應job節點中的name完全相同,如:<job-name>Job1</job-name>
5. job-group 調度任務(job)所屬分組,該值必須和job中的group完全相同,如:<job-group>JobGroup</job-group>
6. cron-expression 任務執行的cron表達式,如:<cron-expression>0/30 * * * * ?</cron-expression> 每30秒執行一次
其余節點按照默認設置即可。
根據實際項目中的需要靈活配置quartz_jobs.xml,不需要再進行額外的修改其他后臺代碼,實現靈活的多任務調度,需要注意的是修改了quartz_jobs.xml文件后,quartz服務默認不會重新加載該文件,需要重啟下服務才行。
到此,相信大家對“怎么配置jobs和triggers”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。