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
  • 相关阅读:
    终于想起了博客园密码
    关于GCD的8题
    idea快捷键 ctrl + shift + f 失效解决方法
    前端和后端日期类型交互
    poi、easypoi和easyexcel的使用
    事务总结
    数据库cte的理解和使用
    mybatis 调用存储过程没有返回值
    postgresql 查询锁表并解锁
    tigase网络核心SockThread详解(十九)
  • 原文地址:https://www.cnblogs.com/panjinzhao/p/14595484.html
Copyright © 2011-2022 走看看