小记一下通过Quartz 进行轮询数据库从而进行自动打印的需求。

一:首先通过NuGet引用Quartz,Quartz依赖Common.Logging和Common.Logging.Log4Net1211,所以同时需要引用这两个DLL,Common.Logging.Log4Net1211最新版本名称是Common.Logging.Log4Net1213,引用即可。

二:创建Job,基础代码如下

 1 /// <summary>
2 /// 自动打印job
3 /// </summary>
4 [DisallowConcurrentExecution]
5 public class AutoPrintJob : IJob
6 {
7 public async Task Execute(IJobExecutionContext context)
8 {
9 await Task.Run(() =>
10 {
11 //具体处理逻辑
12 });
13 }
14 }

三:创建Scheduler,基础代码如下

 1  public class PrintJobScheduler
2 {
3 public static IScheduler scheduler;
4 public static void Start()
5 {
6 try
7 {
8 Logger.Log($"开始创建自动打印任务", Logger.Category.General, Logger.Severity.Information);
9 //创建调度单元
10 Task<IScheduler> tsk = StdSchedulerFactory.GetDefaultScheduler();
11 //不能注释,注释掉添加调度池的时候会报错
12 scheduler = tsk.Result;
13 //2.创建一个具体的作业即job (具体的job需要单独在一个文件中执行)
14 IJobDetail job = JobBuilder.Create<AutoPrintJob>().WithIdentity("AutoPrintIdentity").Build();
15 string isDebug = ConfigurationManager.AppSettings["IsDebug"].ToString();
16 string cronExpression = GetLoopInterval();
17 //3.创建并配置一个触发器即trigger
18 ITrigger _CronTrigger = TriggerBuilder.Create()
19 .WithIdentity("TriggerAutoPrint")
20 .WithCronSchedule(cronExpression) //秒 分 时 某一天 月 周 年(可选参数)
21 .Build()
22 as ITrigger;
23 //4.将job和trigger加入到作业调度池中
24 scheduler.ScheduleJob(job, _CronTrigger);
25 //5.开启调度
26 scheduler.Start();
27 Logger.Log($"创建自动打印任务成功", Logger.Category.General, Logger.Severity.Information);
28 }
29 catch (Exception ex)
30 {
31 Logger.Log($"创建自动打印任务失败,错误信息:"+ex, Logger.Category.ErrorLog, Logger.Severity.Error);
32 }
33 }
34 public static string GetLoopInterval()
35 {
36 //获取配置文件任务循环间隔
37 int intervalConfig = 1;
38 if (ConfigurationManager.AppSettings["AutoPrintIntervalTime"]!=null)
39 {
40 intervalConfig = Convert.ToInt32(ConfigurationManager.AppSettings["AutoPrintIntervalTime"]);
41 }
42 return intervalConfig.ToString();
43 }
44 }

四:在Global.axax调用Scheduler:

通过Quartz 进行定时任务的更多相关文章

  1. 使用Quartz创建定时任务

    项目开发中经常需要定时循环执行某些任务 比如定时发送报表,定时发送邮件,亦或者定时清理缓存,定时更新数据等等 有些时候可以简单地利用Windows Server的计划任务执行程序 Linux也有相应的 ...

  2. Quartz.net 定时任务之Cron表达式

    一.cron表达式简单介绍和下载 1.在上一篇博客"Quartz.net 定时任务之简单任务"中,我简单介绍了quartz的使用,而这篇博客我将介绍cron的具体使用(不足之处望大 ...

  3. springboot整合Quartz实现定时任务

    1.maven依赖: <!--quartz--> <dependency> <groupId>org.quartz-scheduler</groupId> ...

  4. Spring+Quartz 实现定时任务的配置方法

    Spring+Quartz 实现定时任务的配置方法 整体介绍 一.Quartz介绍 在企业应用中,我们经常会碰到时间任务调度的需求,比如每天凌晨生成前天报表,每小时生成一次汇总数据等等.Quartz是 ...

  5. Spring整合quartz2.2.3总结,quartz动态定时任务,Quartz定时任务集群配置

    Spring整合quartz2.2.3总结,quartz动态定时任务,Quartz定时任务集群配置 >>>>>>>>>>>>&g ...

  6. 【spring-boot】 springboot整合quartz实现定时任务

    在做项目时有时候会有定时器任务的功能,比如某某时间应该做什么,多少秒应该怎么样之类的. spring支持多种定时任务的实现.我们来介绍下使用spring的定时器和使用quartz定时器 1.我们使用s ...

  7. Spring Boot集成quartz实现定时任务并支持切换任务数据源

    org.quartz实现定时任务并自定义切换任务数据源 在工作中经常会需要使用到定时任务处理各种周期性的任务,org.quartz是处理此类定时任务的一个优秀框架.随着项目一点点推进,此时我们并不满足 ...

  8. SpringBoot集成Quartz实现定时任务

    1 需求 在我的前后端分离的实验室管理项目中,有一个功能是学生状态统计.我的设计是按天统计每种状态的比例.为了便于计算,在每天0点,系统需要将学生的状态重置,并插入一条数据作为一天的开始状态.另外,考 ...

  9. Quartz:定时任务工具类

    Quartz:定时任务工具类 Quartz工具类 Quartz工具类 import org.quartz.*; import org.quartz.impl.StdSchedulerFactory; ...

  10. Spring+quartz 实现定时任务job集群配置

    为什么要有集群定时任务? 因为如果多server都触发相同任务,又同时执行,那在99%的场景都是不适合的.比如银行每晚24:00都要汇总营业额.像下面3台server同时进行汇总,最终计算结果可能是真 ...

随机推荐

  1. 老子云AMRT全新三维格式正式上线,其性能全面超越现有的三维数据格式

    9月16日,老子云AMRT全新三维格式正式上线,其性能远超现有的三维数据格式.目前已有含国家超算长沙中心.中科院空间所.中车集团等上百家政企事业单位的项目中使用了AMRT格式,大大提升了可视化项目的开 ...

  2. 02 java包装类型的缓存机制

    02 java包装类型的缓存机制 Java 基本数据类型的包装类型的大部分都用到了缓存机制来提升性能. Byte,Short,Integer,Long 这 4 种包装类默认创建了数值 [-128,12 ...

  3. MySQL数据检索时,sql查询的结果如何加上序号

    1.sql语法 @i:类型java定义的变量 @i:=0:这里类似给i初始化值为0 @i:=@i+1 :每次从0开始递增+1 SELECT (@i:=@i+1) as id,TDLINE FROM Y ...

  4. 写for循环快捷生成方式

    在编写代码过程常常会使用到for循环,这里给大家介绍一种快捷写法len.fori+回车键(其中len为循环长度)举个栗子,编写10次循环 8.fori

  5. 使用net core 6 c# 的 NPOI 包,读取excel..xlsx单元格内的图片,并存储到指定服务器

    这个是记录,单元格的图片. 直接上代码,直接新建一个 net core api 解决方案,引用一下nuget包.本地创建一个 .xlsx 格式的excel文件 using ICSharpCode.Sh ...

  6. Hashtable集合 --练习题_计算一个字符串中每个字符出现次数

    Hashtable集合 java.util.Hashtable<K,V>集合 implements Map<K,V>接口  Hashtable:底层也是一个哈希表,是一个线程安 ...

  7. P1494 小Z的袜子 莫队

    题干 就是将$add$和$del$函数里的$ans$变化变成组合数嘛, 先预处理出$x$只相同袜子一共有$f[x] = 1+2+...+$$(x-1)$种组合, 要注意,由于$f[x]$是一直加到$x ...

  8. 4-6 Mabatis 框架

    Mabatis 框架 Ⅰ.关于Mabatis 对数据库中的数据进行访问的框架 数据库执行过程: 连接数据库-->准备好SQL-->发送SQL语句-->执行语句-->获取结果-- ...

  9. [BJDCTF2020]EasySearch-1

    1.打开之后界面如下: 2.在首界面审查源代码.抓包未获取到有效信息,就开始进行目录扫描,获取到index.php.swp文件,结果如下: 3.访问index.php.swp文件获取源代码信息,结果如 ...

  10. day01--DOS常用命令

    打开CMD的方式 开始+系统+命令提示符 Win键+R输入cmd打开控制台(推荐使用) 在任意的文件夹下面,按住shift键+鼠标右键点击,在此处打开命令行窗口 资源管理器的地址栏前面加,上cmd路径 ...