/// <summary>
        /// 开始任务通过盘点计划
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="trigger"></param>
        /// <param name="groupName"></param>
        /// <param name="jobDetailName"></param>
        public async Task SchedulerStartByPlan(InventoryPlan inventoryPlan)
        {
            if (Scheduler == null)
            {
                CreateScheduler();
            }

            var currentTrigger = CustomizeTrigger.GetExecuteInventoryPlanTrigger(inventoryPlan.id, QuartzUtils.GetQuartzCron(inventoryPlan));

            IJobDetail jobDetail = JobBuilder.Create <ExecuteInventoryPlanJoB>().WithIdentity(inventoryPlan.id, GroupName.ExecuteInventoryPlan.ToString()).Build();
            //将任务与触发器添加到调度器中
            await Scheduler.ScheduleJob(jobDetail, currentTrigger);

            //开始执行
            await Scheduler.Start();
        }
        public async Task CreateUpdateTriggerAsync(string cron)
        {
            var triggerName      = $"{cron}Trigger";
            var triggerGroupName = GroupName.ExecuteInventoryPlan.ToString();
            var trigger          = await Scheduler.GetTrigger(new TriggerKey(triggerName, triggerGroupName));

            var ret = IsExistScheduleJob(triggerName, triggerGroupName);

            if (!ret.Result)
            {
                await SchedulerStartAsync <ExecuteInventoryPlanJoB>(CustomizeTrigger.GetExecuteInventoryPlanTrigger(cron), GroupName.ExecuteInventoryPlan, cron);
            }
            else
            {
                var triggerNew = TriggerBuilder.Create().WithIdentity(triggerName, triggerGroupName).ForJob(trigger.JobKey).WithCronSchedule(cron).Build();
                await Scheduler.RescheduleJob(trigger.Key, triggerNew);
            }
        }
Esempio n. 3
0
        public void QuartzTestMethod()
        {
            CustomizeScheduler.GetInstance().SchedulerStart <GetInventoryPlanJoB>(CustomizeTrigger.GetInventoryPlanTrigger(), GroupName.GetInventoryPlan);

            System.Threading.Thread.Sleep(2000000);
        }