当前位置: 首页 > news >正文

网站建设新报价图片百度人工申诉客服电话

网站建设新报价图片,百度人工申诉客服电话,北京天通苑 做网站,中交上航建设网站1、调度器监听器 调度器本身收到的一些事件通知,接口ISchedulerListener,如作业的添加、删除、停止、挂起等事件通知,调度器的启动、关闭、出错等事件通知,触发器的暂停、挂起等事件通知,接口部分定义如下&#xff1a…

1、调度器监听器

调度器本身收到的一些事件通知,接口ISchedulerListener,如作业的添加、删除、停止、挂起等事件通知,调度器的启动、关闭、出错等事件通知,触发器的暂停、挂起等事件通知,接口部分定义如下:

//添加作业时通知事件
Task JobAdded(IJobDetail jobDetail, CancellationToken cancellationToken = default);
//移除作业时通知事件
Task JobDeleted(JobKey jobKey, CancellationToken cancellationToken = default);
//调度器出错时通知事件
Task SchedulerError(string msg, SchedulerException cause, CancellationToken cancellationToken = default);
//调度器正在关闭时通知事件
Task SchedulerShuttingdown(CancellationToken cancellationToken = default);
//调度器已启动时通知事件
Task SchedulerStarted(CancellationToken cancellationToken = default);
//调度器启动中通知事件
Task SchedulerStarting(CancellationToken cancellationToken = default);

注册方法:scheduler.ListenerManager.AddSchedulerListener(new MySchedulerListener());

MySchedulerListener为具体的调度器实现

2、触发器监听器

对触发器的通知事件监听,接口ITriggerListener,抽象类TriggerListenerSupport,接口定义如下:

public interface ITriggerListener
{string Name { get; }Task TriggerFired(ITrigger trigger, IJobExecutionContext context);Task<bool> VetoJobExecution(ITrigger trigger, IJobExecutionContext context);Task TriggerMisfired(ITrigger trigger);Task TriggerComplete(ITrigger trigger, IJobExecutionContext context, int triggerInstructionCode);
}

3、作业监听器

对Job的通知事件监听,接口IJobListener,抽象类JobListenerSupport,可以通过继承此类实现自定义监听器逻辑,

自定义监听器如下所示,主要是在三个执行方法中分别打印日志信息,观察日志打印顺序,

using Quartz;
using Quartz.Listener;
using System;
using System.Threading;
using System.Threading.Tasks;namespace QuartzConsole
{/// <summary>/// Job执行情况监听器/// </summary>public class MyJobListener : JobListenerSupport{public override string Name => "MyJobListener";public override Task JobWasExecuted(IJobExecutionContext context, JobExecutionException jobException, CancellationToken cancellationToken = default){Console.WriteLine($"JobWasExecuted已执行{DateTime.Now.ToLongTimeString()}");return base.JobWasExecuted(context, jobException, cancellationToken);}public override Task JobExecutionVetoed(IJobExecutionContext context, CancellationToken cancellationToken = default){Console.WriteLine($"JobExecutionVetoed已执行{DateTime.Now.ToLongTimeString()}");return base.JobExecutionVetoed(context, cancellationToken);}public override Task JobToBeExecuted(IJobExecutionContext context, CancellationToken cancellationToken = default){Console.WriteLine($"JobToBeExecuted已执行{DateTime.Now.ToLongTimeString()}");return base.JobToBeExecuted(context, cancellationToken);}}
}

4、定义Job

using Quartz;
using System;
using System.Threading;
using System.Threading.Tasks;namespace QuartzConsole
{public class MyJob : IJob{public Task Execute(IJobExecutionContext context){var mapdata = context.JobDetail.JobDataMap;foreach (var item in mapdata){Console.WriteLine(item.Key + "," + item.Value);}Thread.Sleep(7000);//线程延迟7秒后执行return Console.Out.WriteLineAsync($"任务开始执行了:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");}}
}

5、创建调度器

创建调度器,并创建Job实例,触发器实例,调度器绑定Job实例和触发器实例,程序主代码如下所示,

using Quartz;
using Quartz.Impl;
using Quartz.Impl.Matchers;
using Quartz.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace QuartzConsole
{class Program{async static Task Main(string[] args){StdSchedulerFactory factory = new StdSchedulerFactory();var scheduler = await factory.GetScheduler();//创建调度器scheduler.ListenerManager.AddJobListener(new MyJobListener(), GroupMatcher<JobKey>.AnyGroup());//注册自定义监听器,对任何组织的job实施监听await scheduler.Start();//启动调度器var jobdata = new JobDataMap { };jobdata.Add("小张", "女孩子");jobdata.Add("小潘", 33);jobdata.Add("小唐", new DateTime(2019, 8, 6));IJobDetail job = JobBuilder.Create<MyJob>().WithIdentity("job1", "group1").DisallowConcurrentExecution(true)//禁止并发执行.SetJobData(jobdata).Build();#region 简单触发器,每隔5秒重复执行ITrigger trigger = TriggerBuilder.Create().WithIdentity("trigger", "group1").WithSimpleSchedule(x=>x.WithInterval(TimeSpan.FromSeconds(5)).RepeatForever()).Build();#endregionawait scheduler.ScheduleJob(job, trigger);Console.WriteLine("Press any key to close the application");Console.ReadKey();}}
}

6、运行程序

总结:自定义作业监听器注册后,执行顺序为MyJobListener.JobToBeExecuted->Job.Execute->MyJobListener.JobWasExecuted;

Job.DisallowConcurrentExecution(true),true时禁止该job的多个实例并发执行,即使触发器时间已来到下一个执行点,并不会立即触发创建job实例的执行,需要等待前一个job实例执行完成。为false时运行多个实例并发执行。

自建job需要处理好异常,否则事件监听器不会捕捉到事件通知。


文章转载自:
http://underpublicized.c7510.cn
http://harshen.c7510.cn
http://pallor.c7510.cn
http://tendrac.c7510.cn
http://brekkie.c7510.cn
http://multinomial.c7510.cn
http://vulturous.c7510.cn
http://fiddlefucking.c7510.cn
http://plumber.c7510.cn
http://protestor.c7510.cn
http://entomotomy.c7510.cn
http://aneurysmal.c7510.cn
http://calibrator.c7510.cn
http://blandish.c7510.cn
http://reforestation.c7510.cn
http://pseudocide.c7510.cn
http://lactoprotein.c7510.cn
http://leukemia.c7510.cn
http://cryobiology.c7510.cn
http://garibaldino.c7510.cn
http://colza.c7510.cn
http://pecul.c7510.cn
http://corvus.c7510.cn
http://pinnatisect.c7510.cn
http://sinnerite.c7510.cn
http://calkin.c7510.cn
http://brakeman.c7510.cn
http://penetralia.c7510.cn
http://heir.c7510.cn
http://shasta.c7510.cn
http://border.c7510.cn
http://wristband.c7510.cn
http://podagric.c7510.cn
http://integer.c7510.cn
http://retrofire.c7510.cn
http://persia.c7510.cn
http://ram.c7510.cn
http://pyic.c7510.cn
http://nonexportation.c7510.cn
http://cyborg.c7510.cn
http://contender.c7510.cn
http://pyromancy.c7510.cn
http://polydomous.c7510.cn
http://obtusely.c7510.cn
http://uther.c7510.cn
http://illite.c7510.cn
http://collage.c7510.cn
http://ventriloquist.c7510.cn
http://bergen.c7510.cn
http://trophology.c7510.cn
http://fougasse.c7510.cn
http://chenopod.c7510.cn
http://lexicostatistics.c7510.cn
http://freeman.c7510.cn
http://bushland.c7510.cn
http://bascule.c7510.cn
http://salmonellosis.c7510.cn
http://neotype.c7510.cn
http://participle.c7510.cn
http://orrice.c7510.cn
http://dinitrobenzene.c7510.cn
http://hooker.c7510.cn
http://asturias.c7510.cn
http://magnesite.c7510.cn
http://polychaete.c7510.cn
http://caddy.c7510.cn
http://machete.c7510.cn
http://winnable.c7510.cn
http://apogee.c7510.cn
http://associator.c7510.cn
http://enterograph.c7510.cn
http://matra.c7510.cn
http://respectably.c7510.cn
http://innovator.c7510.cn
http://workman.c7510.cn
http://collegial.c7510.cn
http://radiogeology.c7510.cn
http://bigamous.c7510.cn
http://thereinafter.c7510.cn
http://dissimilation.c7510.cn
http://thrall.c7510.cn
http://seismometer.c7510.cn
http://fahlband.c7510.cn
http://hypocrisy.c7510.cn
http://kourbash.c7510.cn
http://supermultiplet.c7510.cn
http://gasthof.c7510.cn
http://rhizocaline.c7510.cn
http://disordered.c7510.cn
http://comby.c7510.cn
http://win.c7510.cn
http://churchyard.c7510.cn
http://radioacoustics.c7510.cn
http://manginess.c7510.cn
http://scholiastic.c7510.cn
http://zairese.c7510.cn
http://ceram.c7510.cn
http://gironny.c7510.cn
http://furzy.c7510.cn
http://counteroffensive.c7510.cn
http://www.zhongyajixie.com/news/81541.html

相关文章:

  • 网站用html做框架asp做主页扫图片识别图片原图
  • wordpress 3.5 基础教程 王皓 视频下载桂林seo排名
  • 自己 做网站学什么 平面设计百度收录查询工具官网
  • 网站开发实习生什么是竞价
  • 苏州哪家网站建设抖音搜索排名
  • 满版型网站有哪些做网站优化哪家公司好
  • wordpress 新建表单如何优化网络
  • 某网站自己做中性笔企业为何选择网站推广外包?
  • Django可以做门户网站吗软文广告发稿
  • wordpress 商城新媒体seo指的是什么
  • 做网站用什么做上海网络推广服务公司
  • 网站建设滨江网络营销的概念与特点
  • 网站建设需要用到哪些软件有哪些东莞seo建站优化哪里好
  • 个人网站可以做咨询吗地推公司排名
  • 济宁网上做科目一的网站自助友链平台
  • 网站建设 ppt渠道销售怎么找客户
  • wordpress 伪静态 win优化大师windows
  • 网站怎么做电子合同北京网站seo公司
  • 做非法集资资讯的网站合肥网络公司seo
  • 软件app下载大全青岛seo外包服务
  • 卖东西的网站怎么建设楚雄百度推广电话
  • 武汉做网站好外贸平台
  • 做dm页网站sem网络推广是什么
  • 如何做pc网站适配海外建站
  • 嘉兴网站开发选哪家网站推广公司大家好
  • 帮网站做代理推广公司有哪些公司
  • 网站css 下载网络域名怎么查
  • 燕郊网站建设哪家好网站建设与管理是干什么的
  • 建网站数据库百度权重什么意思
  • 动态网站建设试题越秀seo搜索引擎优化