首页 > Web开发 > 详细

Quartz.Net 删除一个Job

时间:2019-10-29 15:23:19      阅读:62      评论:0      收藏:0      [点我收藏+]

Quartz.Net 删除Job

来博客园的第一篇文章先写个简单的,希望能帮助到大家。

步入正题:

     Quartz.Net有三个重要的概念,分别是 Scheduler 、Job 、Trigger。

     Scheduler包含JobTrigger。

     如果要删除一个正在运行的Job,需要在Schedule中将其移除。

     调用的是IScheduler 中的DeleteJob 方法

上代码:

    

 public class JobController
    {
        private static JobController _jobController = new JobController();

        private JobController()
        {

        }

        public static JobController Instance()
        {
            return _jobController;
        }

        public void Start()
        {
            LogProvider.SetCurrentLogProvider(new ConsoleLogProvider());

            RunProgramRunExample().GetAwaiter().GetResult();

            Console.WriteLine("Press any key to close the application");
            Console.ReadKey();


        }


        private static async Task RunProgramRunExample()
        {
            try
            {
               
                NameValueCollection props = new NameValueCollection
                {
                    { "quartz.serializer.type", "binary" }
                };
                StdSchedulerFactory factory = new StdSchedulerFactory(props);
                IScheduler scheduler = await factory.GetScheduler();

               
                await scheduler.Start();
               
                for (int i = 0; i < 10; i++)
                {
                   
                    IJobDetail job = JobBuilder.Create<AutoJob>()
                         .WithIdentity("计算作业" + i.ToString(), "组1")
                        .UsingJobData("jobSays", $"Hello {i}!")
                        .UsingJobData("myFloatValue", i)
                        .Build();

                   
                    ITrigger trigger = TriggerBuilder.Create()
                        .WithIdentity($"trigger{i}", "group1")
                        .StartNow()
                        .WithSimpleSchedule(x => x
                            .WithIntervalInSeconds(10)
                            .RepeatForever())
                        .Build();

                    // Tell quartz to schedule the job using our trigger
                    await scheduler.ScheduleJob(job, trigger);
                }

                JobKey jk = new JobKey("计算作业1", "组1");
                await scheduler.DeleteJob(jk);//移除一个job

               
                await Task.Delay(-1);
              
                await scheduler.Shutdown();

            }
            catch (SchedulerException se)
            {
                Console.WriteLine(se);
            }
        }

    }

写在最后:

    第一次写没什么经验,欢迎大家批评指教!

    

Quartz.Net 删除一个Job

原文:https://www.cnblogs.com/dcxy/p/11758410.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!