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

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

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

      Quartz.Net 配置(轉(zhuǎn)載)

      Quartz.Net 有兩類配置文件,

      1. Quartz.系統(tǒng)級別配置,  默認(rèn)配置文件名為 quartz.config , 是java properties 格式的配置文件, 用來設(shè)定 quartz 整體行為, 比如 scheduler instance id, 線程池大小, jobstore類型, DB jobstore的數(shù)據(jù)庫地址, quartz 的插件(比如有長時間作業(yè)自動 interrupt 插件), 以及定義 job/trigger的配置文件路徑

      2. job/trigger的配置文件, 默認(rèn)名稱為 quartz_jobs.xml, 用來配置 job 和 trigger 定義信息

       

      對于Quartz.系統(tǒng)級的配置,  可以直接用代碼設(shè)置,  可以放到quartz.config,  也可以 Quartz.Net 也支持定義在 C#項目的 app.config 文件中, 這樣就不需要單獨再引入 quartz.config 文件.

       

      下面是寫代碼的方式設(shè)定Quartz.系統(tǒng)級配置的示例:

                     var factory = new StdSchedulerFactory(new System.Collections.Specialized.NameValueCollection()
                      {
                          {"quartz.plugin.xml.fileNames","~/quartz_jobs.xml" },
                          {"quartz.plugin.xml.type","Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin,Quartz"},
                          {"quartz.plugin.triggHistory.type","Quartz.Plugin.History.LoggingJobHistoryPlugin,Quartz"}, 
                      });
                  IScheduler scheduler = factory.GetScheduler();
                  scheduler.Start();

       

      定義在 C#項目 app.config 的示例:

      <quartz>
              <add key="quartz.scheduler.instanceName" value="QuartzScheduler" />
              <!-- Configure Thread Pool -->
              <add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
              <add key="quartz.threadPool.threadCount" value="10" />
              <add key="quartz.threadPool.threadPriority" value="Normal" />
              <!-- Configure Job Store -->
              <add key="quartz.jobStore.type" value="Quartz.Simpl.RAMJobStore, Quartz" />
              <add key="quartz.plugin.xml.type" value="Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin, Quartz" />
              <add key="quartz.plugin.xml.fileNames" value="~/quartz_jobs.xml" />
              <add key="quartz.plugin.xml.scanInterval" value="10" />
              <add key="quartz.plugin.xml.failOnFileNotFound" value="true" /> 
       </quartz>
          
       

       注意:

      1.   V2 版本的插件 quartz.plugin.xml  和 V3 版的quartz.plugin.jobInitializer 是一個東西,  v2 插件放在主包中, v3 分離到 Quartz.Plugins 包中了.

      2.   quartz.plugin.xml.scanInterval 參數(shù)可以設(shè)置定時幾秒自動加載job/trigger定義文件, 取值為0表示禁止自動加載job文件.

      3.   xml 文件定義的job 只需要調(diào)用  scheduler.Start() 即可自動調(diào)度 ; 但使用代碼build 的job, 需要額外調(diào)用 scheduler.ScheduleJob() 方法才能被調(diào)度.

      4.  quartz.net Version 3之后開始支持異步, 我使用的是quart 2.6.2, 即v2的最后一個版本, 還是傳統(tǒng)的代碼寫法.

      5. 如果沒有空余線程, job將會等到騰出空余線程才會執(zhí)行, 但是等待時間如果超過 misfireThreshold 設(shè)置時間將放棄本次執(zhí)行.

       

      具體可以參考

      https://stackoverflow.com/questions/10952240/quartz-net-job-type-configuration-issues

      https://github.com/castleproject/Windsor.Quartz/blob/master/docs/configuration.md

      https://jalena.bcsytv.com/archives/1994

      http://www.rzrgm.cn/skychen1218/p/7765823.html

       

       

      下面部分轉(zhuǎn)載自 https://jalena.bcsytv.com/archives/1994

      Quartz.NET 3.x 例子

      2018-03-25 435點熱度 1人點贊 0條評論

      最近寫項目需要用到定時任務(wù),所以就找到了Quartz.NET,但網(wǎng)上的例子都是到處抄襲的,完全沒有適合Quartz.NET 3.x 的有用信息,這里就將自己的使用例子帖一下。

      • IDE:VS2017
      • .Net : 4.5.2

      寫在前面

      Quartz.NET 在3.x已經(jīng)將插件分離了,所以如果要從xml直接加載文件,需要引入插件包


      配置

      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" />
        </configSections>
      
        <quartz>
          <add key="quartz.scheduler.instanceName" value="QuartzScheduler"/>
          <add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz"/>
          <add key="quartz.threadPool.threadCount" value="10"/>
          <!--******************************Plugin配置*********************************************-->
          <add key="quartz.plugin.jobInitializer.type" value="Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin, Quartz.Plugins"/>
          <add key="quartz.plugin.jobInitializer.fileNames" value="quartz_jobs.xml"/>
        </quartz>
      
        <startup>
          <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
        </startup>
      
      </configuration>

       

       

      quartz_jobs.xml

      <?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>
      
          <!--開始執(zhí)行一個調(diào)度-->
          <job>
            <name>jldwjob</name>
            <group>kelun</group>
            <description>計量單位</description>
            <job-type>Kelun.JldwJob, Kelun</job-type><!--格式:實現(xiàn)了IJob接口的包含完整命名空間的類名,程序集名稱-->
            <durable>true</durable>
            <recover>false</recover>
          </job>
          
          <trigger>
            <cron>
              <name>jlwd</name>
              <group>kelun</group>
              <job-name>jldwjob</job-name>
              <job-group>kelun</job-group>
              <!--<start-time>2018-01-22T00:00:00+08:00</start-time>-->
              <cron-expression>0/1 * * * * ?</cron-expression><!--每3秒執(zhí)行一次-->
            </cron>
          </trigger>
      
        </schedule>
      </job-scheduling-data>

      接口實現(xiàn)

      using Kelun.Log4Net;
      using Quartz;
      using System.Reflection;
      using System.Threading.Tasks;
      
      namespace Kelun
      {
          class JldwJob : IJob
          {
      
              private static readonly IMyLog Logger = MyLogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
      
              public Task Execute(IJobExecutionContext context)
              {
                  return Task.Run(() => 
                  {
                      Logger.Info("定時任務(wù)執(zhí)行");
                  });
              }
          }
      }

      啟動Quartz

      public MainForm()
      {
          InitializeComponent();
          RunProgramAsync().GetAwaiter().GetResult();
      }
      
      private static async Task RunProgramAsync()
      {
          try
          {
              StdSchedulerFactory factory = new StdSchedulerFactory();
      
              IScheduler scheduler = await factory.GetScheduler();
      
              //開啟調(diào)度器
              await scheduler.Start();
      
              //創(chuàng)建一個作業(yè)
              //IJobDetail job = JobBuilder.Create<JldwJob>().WithIdentity("myJob", "group1").Build();
      
              //ITrigger trigger = TriggerBuilder.Create()
              //    .WithIdentity("myTrigger", "group1")
              //    .StartNow()     //現(xiàn)在開始
              //    .WithSimpleSchedule(x => x
              //        .WithIntervalInSeconds(1)   //觸發(fā)時間,1秒一次
              //        .RepeatForever())
              //    .Build();
      
              //把作業(yè),觸發(fā)器加入調(diào)度器。
             //await scheduler.ScheduleJob(job, trigger);  
      
              //await scheduler.Shutdown();
      
          }
          catch (SchedulerException se)
          {
              Logger.Error("執(zhí)行錯誤", se);
          }
      }

       

       

      禁用Quartz.NET日志輸出

      <logger name="Quartz">
          <level value="OFF" />
      </logger>

       

       
      posted @ 2021-01-30 00:18  harrychinese  閱讀(987)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 少妇被多人c夜夜爽爽av| 又大又粗又爽18禁免费看| 国产情侣激情在线对白| 尤物国精品午夜福利视频| 亚洲人成在线观看网站不卡| 青阳县| 国产精品国产精品一区精品| 无码国内精品久久人妻蜜桃| 人妻夜夜爽天天爽一区| 日本一本无道码日韩精品| 久久中文字幕一区二区| 亚洲熟女乱综合一区二区| 丝袜无码一区二区三区| 亚洲精品成人片在线观看精品字幕| 亚洲乱人伦中文字幕无码| 久久精品无码一区二区三区| 国内精品无码一区二区三区| 三男一女吃奶添下面视频| 中文字幕日韩一区二区三区不卡| 国产99青青成人A在线| 延长县| 久久精品视频一二三四区| 午夜成人无码免费看网站| 桐城市| 亚洲日产韩国一二三四区| 欧洲美熟女乱又伦AV影片| 97欧美精品系列一区二区| 日本无产久久99精品久久| 不卡av电影在线| 少妇无码av无码专区| 国产亚洲精品国产福APP | 综合偷自拍亚洲乱中文字幕| 欧洲无码一区二区三区在线观看| 日本深夜福利在线观看| 亚洲全乱码精品一区二区| 人妻系列中文字幕精品| 久久午夜无码免费| 国产一区二区三区不卡视频| 蜜桃网址| 中文字幕第一页国产| 亚洲永久精品免费在线看|