• QuartzNet使用


    quartz.config
    
    # You can configure your scheduler in either <quartz> configuration section
    # or in quartz properties file
    # Configuration section has precedence
    
    quartz.scheduler.instanceName = RemoteServer
    
    # 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.Plugins
    
    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.scheduler.exporter.rejectRemoteRequests = true
    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>
    
        <!--cancelOrderJob测试 任务配置-->
        <job>
          <name>cancelOrderJob</name>
          <group>ABC.OMS.Order</group>
          <description>取消订单计划任务</description>
          <job-type>QuartzTest.Jobs.CancelOrderJob,QuartzTest.Jobs</job-type>
          <durable>true</durable>
          <recover>false</recover>
        </job>
        <trigger>
          <cron>
            <name>cancelOrderTrigger</name>
            <group>ABC.OMS.Order</group>
            <job-name>cancelOrderJob</job-name>
            <job-group>ABC.OMS.Order</job-group>
            <start-time>2015-01-22T00:00:00+08:00</start-time>
            <cron-expression>0/2 * * * * ? </cron-expression>
          </cron>
        </trigger>
    
      </schedule>
    </job-scheduling-data>
    class Program
        {
            static void Main(string[] args)
            {
                // var properties = new NameValueCollection();
                // properties["quartz.scheduler.instanceName"] = "RemoteServer";
                // properties["quartz.threadPool.type"] = "Quartz.Simpl.SimpleThreadPool, Quartz";
                // properties["quartz.threadPool.threadCount"] = "5";
                // properties["quartz.threadPool.threadPriority"] = "Normal";
                // properties["quartz.scheduler.exporter.type"] = "Quartz.Simpl.RemotingSchedulerExporter, Quartz";
                // properties["quartz.scheduler.exporter.port"] = "555";
                // properties["quartz.scheduler.exporter.bindName"] = "QuartzScheduler";
                // properties["quartz.scheduler.exporter.channelType"] = "tcp";
                // properties["quartz.scheduler.exporter.channelName"] = "httpQuartz";
                // properties["quartz.scheduler.exporter.rejectRemoteRequests"] = "true";
                //ISchedulerFactory schedFact = new StdSchedulerFactory(properties);
    
                ISchedulerFactory schedFact = new StdSchedulerFactory();
                IScheduler sched = schedFact.GetScheduler().Result;
                sched.Start();
    
                IJobDetail cancelOrderJob = JobBuilder.Create<CancelOrderJob>()
                    .WithIdentity("cancelOrderJob", "ABC.OMS.Order")
                    .Build();
    
                ITrigger cancelOrderTrigger = TriggerBuilder.Create()
                  .WithIdentity("cancelOrderTrigger", "ABC.OMS.Order")
                  .StartNow()
                  .WithSimpleSchedule(x => x
                      .WithIntervalInSeconds(3)
                      .RepeatForever())
                  .Build();
    
                IJobDetail job1 = JobBuilder.Create<PaymentConfirmedJod>()
                    .WithIdentity("PaymentConfirmedJod", "group1")
                    .Build();
                ITrigger trigger1 = TriggerBuilder.Create()
                  .WithIdentity("PaymentConfirmedTrigger", "group1")
                  .StartNow()
                  .WithSimpleSchedule(x => x
                      .WithIntervalInSeconds(2)
                      .RepeatForever())
                  .Build();
    
                sched.ScheduleJob(cancelOrderJob, cancelOrderTrigger);
                sched.ScheduleJob(job1, trigger1);
    
                System.Console.ReadKey();
            }
        }
    namespace QuartzTest.Jobs
    {
        [DisallowConcurrentExecution]  //设置JOB不允许并行执行
        public class CancelOrderJob : IJob
        {
            System.Threading.Tasks.Task IJob.Execute(IJobExecutionContext context)
            {
                System.Console.WriteLine(string.Format("[{0}]订单已取消", DateTime.Now));
                Thread.Sleep(5000);
                return System.Threading.Tasks.Task.CompletedTask;
            }
        }
    }
  • 相关阅读:
    python3 操作excel(读操作)
    display:inline-block;产生间隙解决方法
    vedio自定义样式
    angularjs路由
    移动端设置字体px转换rem的脚本
    div在不固定高度的情况下垂直或者水平居中
    css气泡地址和分享地址
    js点击按钮div显示,点击div或者body和按钮,div隐藏
    js倒计时跳转页面
    点击按钮div显示,点击div或者document,div隐藏
  • 原文地址:https://www.cnblogs.com/huangzelin/p/9706690.html
Copyright © 2020-2023  润新知