1、安装Quartz.Net

Install-Package Quartz -Version 2.5.0

2、需要执行定时任务的代码,新建一个类,继承IJob接口,并实现该接口

 public class TestJob : IJob
{
public void Execute(IJobExecutionContext context)
{
try
{
Console.WriteLine("当前时间是" + DateTime.Now.ToString());
}
catch (Exception ex)
{ throw;
}
}
}

3、在程序中需要执行这个定时任务的地方写如下代码

计划者( IScheduler)、工作( IJob)、触发器( Trigger)。给计划者一个工作(Job),让他在 Trigger(什么条件下做这件事) 触发的条件下执行这个工作(Job)

 static void Main(string[] args)
{
IScheduler sched = new StdSchedulerFactory().GetScheduler();
JobDetailImpl jdBossReport = new JobDetailImpl("jdTest", typeof(TestJob));
IMutableTrigger triggerBossReport = CronScheduleBuilder.AtHourAndMinuteOnGivenDaysOfWeek(23, 41).Build();//每天 23:45 执行一次
triggerBossReport.Key = new TriggerKey("triggerTest");
sched.ScheduleJob(jdBossReport, triggerBossReport);
sched.Start();
}

其他定时任务:

 CronScheduleBuilder.AtHourAndMinuteOnGivenDaysOfWeek(13, 55,DayOfWeek.Friday, DayOfWeek.Sunday) //每周五、周日的 13:55 执行;
CronScheduleBuilder.WeeklyOnDayAndHourAndMinute() //每周固定时间
CronScheduleBuilder.MonthlyOnDayAndHourAndMinute() //每月固定时间
 static void Main(string[] args)
{
IScheduler sched = new StdSchedulerFactory().GetScheduler();
JobDetailImpl jdBossReport = new JobDetailImpl("jdTest", typeof(TestJob)); CalendarIntervalScheduleBuilder builder = CalendarIntervalScheduleBuilder.Create();
builder.WithInterval(3, IntervalUnit.Second);//每 3 秒钟执行一次
IMutableTrigger triggerBossReport = builder.Build();
triggerBossReport.Key = new TriggerKey("triggerTest");
sched.ScheduleJob(jdBossReport, triggerBossReport);
sched.Start();
}

4、需要注意的问题:

1)、IJob 的 Execute 中异常问题 :由于 Job 是运行在单独的线程中,因此如果 Execute 中如果发生异常,调试的时候也是不会断点暂停的,好像什么都没发生一样。如果运行在ASP.Net 中,也不会触发 ASP.net 的“未处理异常处理程序”,就好像任务没执行一样。为了当出现异常的时候我们能及早发现, 需要把 Execute 的代码 try...catch...然后把异常处理(比如记录到日志)。

2)、IJob 中怎么样 MapPath: 由于 Job 是运行在单独的线程中,是拿不到HttpContext.Current 的,那怎么 MapPath 呢? HostingEnvironment.MapPath()。 也不能在Job 中做 Request、 Session 等和 Web 相关的工作。

Quartz.Net的简单使用的更多相关文章

  1. Quartz 2D绘制简单图形

    在Quartz 2D中,绘图是通过图形上下文进行绘制的,以下绘制几个简单的图形 首先先创建一个QuartzView.swift文件继承自UIView,然后实现drawRect方法: import UI ...

  2. quartz定时任务的简单使用

    开发环境: springmvc quartz-2.2.3在官网下载的. 步骤: 1.首先在web.xml中加入以下代码: <servlet> <servlet-name>Qua ...

  3. Quartz入门及简单实现

    Quartz简介 Quartz是一个功能丰富的开源作业调度库,可以集成到几乎任何Java应用程序中 - 从最小的独立应用程序到最大的电子商务系统.Quartz可以用来创建执行数十,数百乃至数万个作业的 ...

  4. SpringBoot整合Quartz定时任务 的简单实例 2

    (1)什么是Quartz?(2)Quartz的特点:(3)Quartz专用词汇说明:(4)Quartz任务调度基本实现原理: 接下来看下具体的内容: (1)什么是Quartz? Quartz是一个完全 ...

  5. 热词统计以及Quartz.net的简单使用

    一.热词统计 方案一: 设计一个表:ID       KeyWord     Count 当用户再输入框中查询的时候,我们就往表中插入数据,在插入之前首先判断是否已经存在keyword,存在的话,让C ...

  6. c# Quartz.net的简单封装

    分享一个以前封装的Quartz.net类. 新建一个QuartzClass类库项目.nuget控制台输入 image.png 添加Quartz.net的引用. 我们新建一个JobBase.cs文件,里 ...

  7. 企业级任务调度框架Quartz(3) 一个简单的Quartz 例子

    1. 一个简单的Quartz 工程     本示例应用比起众所周知的 System.out.println("Hello world from Quartz") 来还是要有趣些.当 ...

  8. Quartz.net 的简单使用,创建定时任务

    ISchedulerFactory sf = new StdSchedulerFactory(); sched = sf.GetScheduler(); JobDetail job = new Job ...

  9. spring 整合quartz的方式——简单介绍

    一.继承QuartzJobBean,重写executeInternal方法 <bean name="statQuartzJob" class="org.spring ...

  10. quartz一次简单应用经历

    项目里使用到每月的第一天需要定时统计上一个月的某种数据,这个时候,我开始第一次知道任务调度这么一个专业词汇.也初次了解quartz这个任务调度框架.网上看了好几篇博文,有种quartz越看越难的感觉, ...

随机推荐

  1. Redis01 Redis详细介绍

    参考:https://blog.csdn.net/u011863024/article/details/107476187 学习视频 redis官网 redis中文网 JAVA源码 1 sql的发展 ...

  2. 【亲妈教学】配置Gzip压缩,含前后端步骤

    前言 在使用 vite 进行项目打包时,默认已经帮我们做了一些优化工作,比如代码的压缩,分包等等. 除此之外,我们还有一些可选的优化策略,比如使用 CDN ,开启 Gzip 压缩等.本文会介绍在 vi ...

  3. Zabbix监控阿里云SLB操作指引

    1. SLB介绍 阿里云负载均衡(Server Load Balancer,简称SLB)是云原生时代应用高可用的基本要素.通过将流量分发到不同的后端服务来扩展应用系统的服务吞吐能力,消除单点故障并提升 ...

  4. 来了!来了!国内使用chatGPT的方式总结

    大家好,最近ChatGPT大火呀. 最近几天OpenAI发布的ChatGPT聊天机器人火出天际了,连着上了各个平台的热搜榜. 这个聊天机器人最大的特点是不仅可以模仿人类说话风格同时回答大量问题,能和你 ...

  5. addeventlistener可以这样表示

    事件绑定方法1: //找到id为category的div,绑定onmouseover事件 $("#category")[0].addEventListener("mous ...

  6. Cesium加载三维路线

    1. 概述 将路线加载到三维地图中,能直观显示道路的坡度变化,协同DEM和遥感影像,能极大丰富道路的可视化效果 本文此处基于Cesium,加载地形数据,叠加遥感影像,再叠加路网数据,形成三维地图,效果 ...

  7. torch.nn.Embedding使用详解

    torch.nn.Embedding: 随机初始化词向量,词向量值在正态分布N(0,1)中随机取值.输入:torch.nn.Embedding(num_embeddings, – 词典的大小尺寸,比如 ...

  8. 简单介绍Python中如何给字典设置默认值

    这篇文章主要介绍了Python中如何给字典设置默认值问题,具有很好的参考价值,希望对大家有所帮助.如有错误或未考虑完全的地方,望不吝赐教 Python字典设置默认值 我们都知道,在 Python 的字 ...

  9. C# DevExpress中GridControl控件的基本属性设置和使用方法

    1.GridControl隐藏GroupPanel(主面板) 隐藏:鼠标单击Run Designer-OptionsView-ShowGroupPanel=False; 修改:鼠标单击Run Desi ...

  10. MATLAB批量处理表格类型文件

    MATLAB版本2020b 问题背景:预处理数据,有若干变压器温度表格,要将变压器运行温度数据提取出来 通过LSTM模型进行温度预测