pre { /*控制代码不换行*/ white-space: pre; word-wrap: normal; }

一个小的 Quartz Demo

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Quartz;
using Common.Logging;
using Quartz.Impl;
 
namespace ConAppTestQuartzDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            new ScheduleingFactory().Job();
 
            Console.ReadKey();
        }
    }
}

RewardJob.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Quartz;
 
namespace ConAppTestQuartzDemo
{
    public class RewardJob : IJob
    {
 
        public virtual void Execute(JobExecutionContext context)
        {
            Console.WriteLine("\n=================================================================\n");
 
            Console.WriteLine("现在的时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
 
            Console.WriteLine("\n=================================================================\n");
        }
    }
}

ScheduleingFactory.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Quartz;
using Common.Logging;
using Quartz.Impl;
 
namespace ConAppTestQuartzDemo
{
    public class ScheduleingFactory
    {
        private static ILog _log = LogManager.GetLogger(typeof(ScheduleingFactory));
        private ISchedulerFactory sf = null;
        private IScheduler scheduler = null;
 
        public ScheduleingFactory()
        {
            //初始化调度器工厂
            sf = new StdSchedulerFactory();
        }
 
        private IScheduler GetScheduler()
        {
            return sf.GetScheduler();
        }
 
        /// <summary>
        /// 停止调度工作
        /// </summary>
        /// <param name="inScheduler"></param>
        public void ClearJob(IScheduler inScheduler)
        {
            _log.Info("--------开始讲任务暂停--------");
 
            string[] groups = inScheduler.TriggerGroupNames;
            for (int i = 0; i < groups.Length; i++)
            {
                String[] names = inScheduler.GetTriggerNames(groups[i]);
                for (int j = 0; j < names.Length; j++)
                {
                    inScheduler.UnscheduleJob(names[j], groups[i]);
                }
            }
 
            _log.Info("开始删除相关工作");
 
        }
 
        public void Job()
        {
            try
            {
                scheduler = GetScheduler();
 
                JobDetail rewardJobDetails = new JobDetail("RewardDo", typeof(RewardJob));
                SimpleTrigger rewardDoTrigger = new SimpleTrigger("RewardDoTrigger",SimpleTrigger.RepeatIndefinitely , new TimeSpan(0, 0, 3));
                scheduler.ScheduleJob(rewardJobDetails, rewardDoTrigger);
                scheduler.Start();
            }
            catch (Exception ex)
            {
                Console.WriteLine("发生了异常!" + ex.Message);
                throw ex;
            }
        }
    }
}

Demo 下载:https://files.cnblogs.com/Music/TestQuartzDemo.rar

posted @ 2012-03-15 01:05  monkey's  阅读(142)  评论(0)    收藏  举报