zoukankan      html  css  js  c++  java
  • Quartz Scheduler

    using Quartz;
    public
    static class SchedulerProgram { public static void Start(IScheduler scheduler = null) { try { Assembly asm = typeof(SchedulerProgram).GetTypeInfo().Assembly; Type[] types = asm.GetTypes(); IDictionary<int, Type> typeMap = new Dictionary<int, Type>(); List<Type> typeList = new List<Type>(); foreach (Type t in types) { if (new List<Type>(t.GetInterfaces()).Contains(typeof(IJobScheduler))) { typeList.Add(t); } } foreach (Type t in typeList) { IJobScheduler schedule = ObjectUtils.InstantiateType<IJobScheduler>(t); if (scheduler == null) { schedule.Run().ConfigureAwait(false); } else { schedule.Run(scheduler).ConfigureAwait(false); } } } catch (Exception ex) { throw ex; } } }
    public class TestJobScheduler : IJobScheduler
        {
    
            public async Task Run(IScheduler scheduler)
            {
                Logger.Writelog("Call job scheduler");
                //创建任务
                IJobDetail job = JobBuilder.Create<TestJob>().
                    WithIdentity("EntityRelationshipTestJob", "CRMJobGroup").
                    UsingJobData("jobschedulename", "EntityRelationshipTestJob").
                    Build();
    
                //创建触发器
                ITrigger trigger = TriggerBuilder.Create().WithIdentity("ContactTrigger", "TimeGroup").WithSimpleSchedule(t => t.WithIntervalInMinutes(30).WithRepeatCount(0)).Build();// test trigger
    
                //添加任务及触发器至调度器中
                await scheduler.ScheduleJob(job, trigger);
    
                //启动
                Logger.Writelog("Start job scheduler");
                await scheduler.Start();
            }
    
            public Task Run()
            {
                throw new NotImplementedException();
            }
        }
    public interface IJobScheduler
        {
            /// <summary>
            /// 
            /// </summary>
            /// <returns></returns>
            Task Run();
    
            /// <summary>
            /// 外部传入scheduler
            /// </summary>
            /// <param name="scheduler"></param>
            /// <returns></returns>
            Task Run(IScheduler scheduler);
        }
    public class TestJob : IJob
        {
    
            public Task Execute(IJobExecutionContext context)
            {//具体的方法
                return Task.FromResult(0);
            }
    
        }
  • 相关阅读:
    1011. A+B和C (15)
    1010. 一元多项式求导 (25)
    1009. 说反话 (20)
    1007. 素数对猜想 (20)
    1008. 数组元素循环右移问题 (20)
    1006. 换个格式输出整数 (15)
    1005. 继续(3n+1)猜想 (25)
    算法学习(八)
    算法学习(七)
    算法学习(六)
  • 原文地址:https://www.cnblogs.com/330774495qq/p/12855842.html
Copyright © 2011-2022 走看看