zoukankan      html  css  js  c++  java
  • yisha避免系统启动就把全部任务启动一次。

            #region 添加任务计划
            /// <summary>
            /// 添加任务计划
            /// </summary>
            /// <returns></returns>
            private void AddScheduleJob(List<AutoJobEntity> entityList)
            {
                try
                {
                    foreach (AutoJobEntity entity in entityList.Where(p => p.JobStatus == StatusEnum.Yes.ParseToInt()))
                    {
                        if (entity.StartTime == null)
                        {
                            entity.StartTime = DateTime.Now;
                        }
                        DateTimeOffset starRunTime = DateBuilder.NextGivenSecondDate(entity.StartTime, 1);
                        if (entity.EndTime == null)
                        {
                            entity.EndTime = DateTime.MaxValue.AddDays(-1);
                        }
                        DateTimeOffset endRunTime = DateBuilder.NextGivenSecondDate(entity.EndTime, 1);
    
                        var scheduler = JobScheduler.GetScheduler();
                        IJobDetail job = JobBuilder.Create<JobExecute>().WithIdentity(entity.JobName, entity.JobGroupName).Build();
                        job.JobDataMap.Add("Id", entity.Id);
    
                        ICronTrigger trigger = (ICronTrigger)TriggerBuilder.Create()
                                                     .StartAt(starRunTime)
                                                     .EndAt(endRunTime)
                                                     .WithIdentity(entity.JobName, entity.JobGroupName)
                                                     .WithCronSchedule(entity.CronExpression)
                                                     .Build();
                        //避免系统启动就把全部任务启动一次。
                        ((CronTriggerImpl)trigger).MisfireInstruction = MisfireInstruction.CronTrigger.DoNothing;
    
                        scheduler.ScheduleJob(job, trigger);
                        scheduler.Start();
    
                    }
                }
                catch (Exception ex)
                {
                    LogHelper.Write(ex);
                }
            }
            #endregion
  • 相关阅读:
    Synchronized和Lock的实现原理和锁升级
    如何禁止CPU指令重排
    MESI缓存一致性
    归并排序
    强软弱虚四种引用和ThreadLocal内存泄露
    VINS-Mono代码分析与总结(完整版)
    IMU误差模型与校准
    小感
    K8S conul部署
    Centos Consul集群及Acl配置
  • 原文地址:https://www.cnblogs.com/panjinzhao/p/14595484.html
Copyright © 2011-2022 走看看