欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Quartz.Net 删除一个Job

程序员文章站 2023-01-13 12:11:29
Quartz.Net 删除Job 来博客园的第一篇文章先写个简单的,希望能帮助到大家。 步入正题: Quartz.Net有三个重要的概念,分别是 Scheduler 、Job 、Trigger。 Scheduler包含Job和Trigger。 如果要删除一个正在运行的Job,需要在Schedule中 ......

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);
            }
        }

    }

写在最后:

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