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

天河建设网站技术企业建网站服务商

天河建设网站技术,企业建网站服务商,上海网站建设设计公司,福州seo代理计费1、调度器监听器 调度器本身收到的一些事件通知#xff0c;接口ISchedulerListener#xff0c;如作业的添加、删除、停止、挂起等事件通知#xff0c;调度器的启动、关闭、出错等事件通知#xff0c;触发器的暂停、挂起等事件通知#xff0c;接口部分定义如下#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);Taskbool 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执行情况监听器/// /summarypublic 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(), GroupMatcherJobKey.AnyGroup());//注册自定义监听器对任何组织的job实施监听await scheduler.Start();//启动调度器var jobdata new JobDataMap { };jobdata.Add(小张, 女孩子);jobdata.Add(小潘, 33);jobdata.Add(小唐, new DateTime(2019, 8, 6));IJobDetail job JobBuilder.CreateMyJob().WithIdentity(job1, group1).DisallowConcurrentExecution(true)//禁止并发执行.SetJobData(jobdata).Build();#region 简单触发器每隔5秒重复执行ITrigger trigger TriggerBuilder.Create().WithIdentity(trigger, group1).WithSimpleSchedule(xx.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://www.pierceye.com/news/653931/

相关文章:

  • 国外的网站模板类网站网络营销应该这样做
  • 文登市住房和城乡建设局网站山东定制网页建站
  • 北京优化词网站晋城企业网站建设
  • 商城网站 个人备案建设工程质量监理协会网站
  • 易企cms网站模板广告设计与制作好找工作吗
  • wordpress建站容易吗食品饮料网站源码
  • 做网站还有市场吗建一个网站花费
  • 惠州网站建设哪里有wap网站生成
  • 长沙网站外包公司吗搭建wordpress博客系统
  • 通州企业网站建设做网站合成APP
  • 深圳观澜网站建设室内设计软件手机版
  • 苏州建设网站服务国外做家装的网站有哪些
  • 做导航网站赚钱吗大兴区营销网络推广行业
  • 红衫中国网站建设福建手机版建站系统开发
  • 做平面的网站wordpress授权主题
  • 如何做织梦论坛类的网站官网建设目的
  • 安徽网新科技有限公司 网站开发静态网页报告
  • 营销做网站公司怎么做国际货运代理外贸网站
  • 网站建设部署与发布有效期宝石网站建设
  • 网站建设有什么需求分析现在网站都是拿什么软件做的
  • 网站建设需求分析报告撰写阿里云建设网站流程
  • 网站导航栏设计要求seo搜索引擎的优化
  • 杭州做商务网站全屋定制自己设计
  • 汉中定制网站建设公司南昌公司注册
  • 商务网站建设流程步骤小型公司注册资金写多少合适
  • 台州公司网站外包自己做网站运营
  • 聚名网站专业团队p图
  • 网站推广排名收费徐家汇网站建设
  • 做app软件大概多少钱宁波seo优化项目
  • 网站建设土豆视频教程最专业微网站首选公司