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

Quartz .Net 的简单使用

参考了:c# .net framework 4.5.2 , Quartz.NET 3.0.7 - runliuv - 博客园 (cnblogs.com)

https://www.cnblogs.com/personblog/p/11277527.html,

Quartz.NET 作业调度(一):Test - 简书

自己要轮询的任务:

using log4net;
using Quartz;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Web;namespace WzsrmyyApi.QuartzTask
{[DisallowConcurrentExecution]public class ReportJob : IJob{public Task Execute(IJobExecutionContext context){return Task.Run(() =>{foo();});}public static readonly ILog logger = LogManager.GetLogger("SendMsgJob");public void foo(){BigDataSupervisionBll bll = new BigDataSupervisionBll();BigDataSupervisionOtherBll otherBll = new BigDataSupervisionOtherBll();try{var dic = bll.SplitCount(otherBll.GetChargesRecordOneDay());int dictNum = 0; string type = "charges_record";for (int i = dictNum; i < dic.Count; i++){string data = dic[dictNum];var res = bll.PostData(type, data);logger.Info("日志");}}catch (Exception ex){//日志logger.Info("error " + ex);}}}
}

轮询的任务的建立

using Quartz;
using Quartz.Impl;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;namespace WzsrmyyApi.QuartzTask
{public class ReportJobScheduler{public static async void Start(){try{string thisJob = "ReportJob";string groupName = "gp" + thisJob;string jobName = "job" + thisJob;string triggerName = "trigger" + thisJob;// 创建作业调度池ISchedulerFactory factory = new StdSchedulerFactory();IScheduler scheduler = await factory.GetScheduler();// 创建作业IJobDetail job = JobBuilder.Create<ReportJob>().WithIdentity(jobName, groupName).Build();// 创建触发器,ITrigger trigger = TriggerBuilder.Create().WithIdentity(triggerName, groupName).StartNow().WithCronSchedule("0 0 22 ? * * ")//每天晚上十点.Build();//.WithSimpleSchedule(x => x.WithIntervalInSeconds(10).RepeatForever()//每10s执行一次// 加入到作业调度池中await scheduler.ScheduleJob(job, trigger);// 开始运行await scheduler.Start();}catch (Exception ex){//日志}}}
}

最后在程序启动的时候进行注册:

protected void Application_Start(){log4net.Config.XmlConfigurator.Configure();//系统日志配置QuartzTask.ReportJobScheduler.Start();//AreaRegistration.RegisterAllAreas();GlobalConfiguration.Configure(WebApiConfig.Register);FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);RouteConfig.RegisterRoutes(RouteTable.Routes);BundleConfig.RegisterBundles(BundleTable.Bundles);}

以上就是简单的代码使用 。Quartz.net的使用可以通过两种方式调用:一是通过代码的方式,而是通过配置文件的方式;

详细些的可以参考:Quartz.Net详解-CSDN博客

http://www.lryc.cn/news/240870.html

相关文章:

  • 面试Java笔试题精选解答
  • 使用Python画一棵树
  • nginx学习(4)Nginx 负载均衡
  • WSL登录时提示nsenter: cannot open /proc/320/ns/time: No such file or directory的解决办法
  • git修改远程分支名称
  • Django 入门学习总结7-静态文件管理
  • 游戏开发引擎Cocos Creator和Unity如何对接广告-AdSet聚合广告平台
  • 振南技术干货集:制冷设备大型IoT监测项目研发纪实(4)
  • Android线程优化——整体思路与方法
  • 论防火墙的体系结构
  • BeansTalkd 做消息队列服务
  • csv文件添加文件内容和读取
  • 关于禅道的安装配置以及项目管理、团队协同工作
  • 使用Wireshark提取流量中图片方法
  • C#,简单修改Visual Studio 2022设置以支持C#最新版本的编译器,尊享编程之趣
  • 小程序Tab栏与页面滚动联动
  • Java,数据结构与集合源码,关于List接口的实现类(ArrayList、Vector、LinkedList)的源码剖析
  • 算法基础(python版本)
  • 使用Arrays.Sort并定制Comparator排序解决合并区间
  • 【机器学习】039_合理初始化
  • 使用Arrays.asList与不使用的区别
  • 基于可变形卷积和注意力机制的带钢表面缺陷快速检测网络DCAM-Net(论文阅读笔记)
  • el-table 对循环产生的空白列赋默认值
  • 新一代网络监控技术——Telemetry
  • java斗牛,咋金花
  • 深信服技术认证“SCSA-S”划重点:信息收集
  • 代码逻辑修复与其他爬虫ip库的应用
  • 字符串结尾空格比较相关参数BLANK_PAD_MODE(DM8:达梦数据库)
  • 微型计算机原理MOOC题
  • TensorFlow实战教程(十八)-Keras搭建卷积神经网络及CNN原理详解