日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

C# Quartz的配置

發(fā)布時間:2023/12/15 综合教程 29 生活家
生活随笔 收集整理的這篇文章主要介紹了 C# Quartz的配置 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. 介紹

Quartz為后臺工作者提供了得便利,我們下面介紹一下它的配置。本文配置主要針對服務程序的配置。

但是在做下面配置之前,要安裝包

Install-Package Quartz

2. Quartz配置有兩種方法,第一種是純XML配置;第二種是拋棄XML文件配置,用純代碼配置。

2.1 Quartz下的純XML配置

1)首先新建job配置XML文件quartz_jobs.xml,內容如下:

<?xml version="1.0" encoding="UTF-8"?>
<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>

    <!--開始執(zhí)行一個調度-->
    <job>
      <name>TestJob</name>
      <group>TestJobGroup</group>
      <description>TestJobDescription</description>
      <job-type>FeiDuWindowService.Job.TestJob, FeiDuWindowService</job-type>
      <durable>true</durable>
      <recover>false</recover>
    </job>

    <trigger>
      <cron>
        <name>TestJobTrigger</name>
        <group>TestJobTriggerGroup</group>
        <job-name>TestJob</job-name>
        <job-group>TestJobGroup</job-group>
        <cron-expression>*/5 * * * * ?</cron-expression>
      </cron>
    </trigger>
    <!--結束一個調度-->
    
  </schedule>
</job-scheduling-data>

說明: job標簽下面的name與group隨便怎么寫。注意job-type標簽要寫類的具體包路徑,與項目名稱。

trigger下面的cron-expression標簽說明每5秒鐘運行一次。

2)新建job類,繼承IJob

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FeiDuWindowService.Helper;
using Quartz;

namespace FeiDuWindowService.Job
{
    public class TestJob:IJob
    {
        public void Execute(IJobExecutionContext context)
        {
            try
            {
                LogHelper.InfoLog.InfoFormat("--執(zhí)行job-- " + DateTime.Now);
            }
            catch (Exception e)
            {
                
            }
        }
    }
}

3)項目啟動時,配置加載xml文件

           //加載xml job的配置文件
             NameValueCollection properties = new NameValueCollection();
            properties["quartz.plugin.xml.type"] = "Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin, Quartz";
            properties["quartz.plugin.xml.fileNames"] = "~/Job/quartz_jobs.xml";
            //開啟job
            ISchedulerFactory sf = new StdSchedulerFactory(properties);
            IScheduler sched = sf.GetScheduler();
            if(!sched.IsStarted)
                sched.Start();

2.2 Quartz的純代碼

用純代碼很簡單,什么都不用配置,直接上代碼

            ISchedulerFactory factory = new StdSchedulerFactory();
            IScheduler scheduler = factory.GetScheduler();
            if (!scheduler.IsStarted)
            {
                IJobDetail testjob = JobBuilder.Create<TestJob>().WithIdentity("TestJob", "TestJobGroup").Build();
                //將任務與觸發(fā)器關聯(lián)起來放到調度器中
                ITrigger trigger = TriggerBuilder.Create().StartNow().WithIdentity("TestjobTrigger", "TestjobTriggerGroup").WithCronSchedule("*/5 * * * * ?").Build();
                scheduler.ScheduleJob(testjob, trigger);

                scheduler.Start();

                LogHelper.InfoLog.Info("--啟動job OnStart--");
            }

3. job在App.config的配置

可以不加這個配置,但是為了易于管理,我們一般把下面的JOB配置加到App.config下面

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

  <configSections>
    <section name="quartz" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
    <sectionGroup name="common">
      <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging"/>
    </sectionGroup>
  </configSections>
  <common>
    <logging>
      <factoryAdapter type="Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter, Common.Logging">
        <arg key="showLogName" value="true"/>
        <arg key="showDataTime" value="true"/>
        <arg key="level" value="INFO"/>
        <arg key="dateTimeFormat" value="HH:mm:ss:fff"/>
      </factoryAdapter>
    </logging>
  </common>

  <quartz>
    <add key="quartz.scheduler.instanceName" value="ExampleDefaultQuartzScheduler"/>

    <add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz"/>
    <add key="quartz.threadPool.threadCount" value="10"/>
    <add key="quartz.threadPool.threadPriority" value="2"/>

    <add key="quartz.jobStore.misfireThreshold" value="60000"/>
    <add key="quartz.jobStore.type" value="Quartz.Simpl.RAMJobStore, Quartz"/>

    <add key="quartz.dbprovider.customProvider.productName" value="Microsoft SQL Server, provider V2.0.0.0 in framework .NET V2.0"/>
    <add key="quartz.dbprovider.customProvider.assemblyName" value="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <add key="quartz.dbprovider.customProvider.connectionType" value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <add key="quartz.dbprovider.customProvider.commandType" value="System.Data.SqlClient.SqlCommand, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <add key="quartz.dbprovider.customProvider.parameterType" value="System.Data.SqlClient.SqlParameter, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <add key="quartz.dbprovider.customProvider.commandBuilderType" value="System.Data.SqlClient.SqlCommandBuilder, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <add key="quartz.dbprovider.customProvider.parameterDbType" value="System.Data.SqlDbType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <add key="quartz.dbprovider.customProvider.parameterDbTypePropertyName" value="SqlDbType" />
    <add key="quartz.dbprovider.customProvider.parameterNamePrefix" value="@" />
    <add key="quartz.dbprovider.customProvider.exceptionType" value="System.Data.SqlClient.SqlException, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <add key="quartz.dbprovider.customProvider.useParameterNamePrefixInParameterCollection" value="true" />
    <add key="quartz.dbprovider.customProvider.bindByName" value="true" />
    <add key="quartz.dbprovider.customProvider.dbBinaryTypeName" value="Image" />

  </quartz>

</configuration>



可以關注本人的公眾號,多年經(jīng)驗的原創(chuàng)文章共享給大家。



總結

以上是生活随笔為你收集整理的C# Quartz的配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本大乳奶做爰 | 99热8 | 国产精品一二三区视频 | 一级一片免费看 | 亚洲情欲网 | 91成人综合 | av资源中文在线 | 日韩av一区二区在线播放 | 性xxx欧美 | 精品久久久久久中文字幕人妻最新 | 91福利免费视频 | 免费日韩视频 | 超碰人人艹 | 婷婷射图 | 性自由色xxxx免费视频 | 国产精品99久久免费黑人人妻 | 国产视频1区2区3区 国产欧美一区二区精品性色99 | 另类色综合 | 96超碰在线| 中文字幕无码av波多野吉衣 | 中文字幕一区二区免费 | 女性裸体下面张开 | 日本乳汁视频 | 午夜精品一区二区三区免费视频 | 好男人资源 | 青青操av在线 | 亚洲666| 中文字幕一区二区三区在线视频 | 亚洲第一av网 | 国产a视频免费观看 | 人碰人操 | 免费黄毛片 | 国产二区av | 欧美三级又粗又硬 | 国产欧美又粗又猛又爽 | 久久精品性 | 男人的天堂aa | 野外一级片| 国产黄色一区二区三区 | 国产xxxx18| 日韩欧美电影一区二区三区 | 亚洲精品日产精品乱码不卡 | 精品福利三区3d卡通动漫 | 每日在线更新av | 欧美碰碰碰 | www久久精品| av一卡 | 伊人网成人网 | 中文字幕一区二区在线老色批影视 | 热久久免费视频 | 成年女人毛片 | 少妇一级免费 | 大尺度一区二区 | 成人va视频 | 欧美日韩在线直播 | 重囗味sm一区二区三区 | 天天夜夜人人 | 日韩一区二区三区三四区视频在线观看 | 中文一区在线 | 亚洲激情文学 | 国产精品一区久久久 | 亚洲精品一区二区在线 | 免费不卡av在线 | 二区不卡 | 国产美女一区二区三区 | 在线观看的黄网 | 禁断介护av一区二区 | 国产精品一区二区久久毛片 | 青青精品 | 理论av| 人妻少妇一区二区三区 | 男女交性视频 | 最新国产网站 | 国内av片 | wwwjizzzcom| 精品一区av | 黄色91在线观看 | 久久婷婷综合色丁香五月 | 91理论片 | 欧美67194| 极品白嫩丰满少妇无套 | 淫片在线| 91亚洲精品久久久蜜桃网站 | 欧日韩视频 | 欧美一区不卡 | 亚洲国产97在线精品一区 | 亚州欧美日韩 | 看黄色一级 | 欧洲精品在线播放 | n0659极腔濑亚美莉在线播放播放 | 成人亚洲一区二区 | 亚洲乱码国产乱码精品精大量 | 免费看的一级片 | 日本高清视频免费看 | 女人久久久 | 欧美xxxⅹ性欧美大片 | 亚洲影视在线观看 | aaa色| 日韩黄色一级大片 |