当前位置: 首页 > 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.zqtcl.cn/news/653931/

相关文章:

  • 哪个网站做餐饮推广最好深圳市信任网站
  • 网站模板 整站源码广州网站vi设计报价
  • 百度速页建站wordpress审核插件
  • 怎么给网站wordpress专业的vi设计公司
  • 百度关键词在线优化寻找郑州网站优化公司
  • 网站建设适合什么单位网络推广员工作内容
  • 漂亮的网站维护页面wordpress加个微信登录
  • 网站设计是什么意思创建地址怎么弄
  • nas上建设网站文章网站哪里建设好
  • 消防网站模板广告设计专业需要学什么
  • 建设银行网站首页wordpress 登录函数
  • 做网站多长时间广州营销网站制作
  • 美团外卖网站开发建设网站如何写文案
  • 专门做画册封面的网站开发工程师网站开发工程师招聘
  • 广州市建设局网站自己做电影网站违法
  • 网站建设首选公司大丰专业做网站
  • 用dw怎么做网站辽宁省住房和城乡建设厅网站首页
  • 如何用微信小程序做网站2个网站做的链接怎么用一个域名
  • 大理网站建设滇icp备凡科网站代码如何修改
  • 做电商网站的公司简介网站制作多久
  • 营销手段有哪些方式合肥网站优化服务网
  • 网站备案和域名备案山东临沂市建筑模板生产厂家
  • 三类安全员证查询系统网站建设优化服务机构
  • 网站关键词排名没有了城固县网站建设
  • 什么网站需要备案易语言用电脑做网站服务器
  • 可以做婚礼鲜花布置的网站洛阳霞光企业网站建设公司
  • 临淄网站制作同步显示一个wordpress
  • 先建设网站后付款网站相对路径和绝对路径
  • 临沂外贸国际网站建设网站开发外包公司合同
  • 网站设置快捷方式温州网站建设方案报价