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包含job和trigger。
如果要删除一个正在运行的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); } } }
写在最后:
第一次写没什么经验,欢迎大家批评指教!