本文github链接

https://github.com/sunshuaize/cnBlogDemos/tree/master/Quartz.Net%20%E4%BB%BB%E5%8A%A1%E8%B0%83%E5%BA%A6%E4%B9%8B%E7%AE%80%E5%8D%95%E4%BB%BB%E5%8A%A1(1)/DayWorkClose

下面的代码对应这个项目看

三个对象

1.IScheduler

2.IJobDetail

3.ITrigger

第一步,选创建一个任务单元(修建火车道)

#region 创建单元 (时间轴/载体)
StdSchedulerFactory factory = new StdSchedulerFactory();
IScheduler scheduler = await factory.GetScheduler();
await scheduler.Start();
#endregion

第二步,创建一个任务(造火车)

#region job
IJobDetail jobDetail = JobBuilder.Create<HelloJob>()
.WithDescription("this is a job")
.WithIdentity("job1", "group1")
.Build();
#endregion

WithIdentity():

第一个参数(job1):给当前任务起个名字(行动代号)

第二个参数(group1):分组,因为这个任务可以是多个,也可以是多组,分类一下

HelloJob.cs

using Quartz;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace DayWorkCloseService.DayWorkClose
{
public class HelloJob : IJob
{
public async Task Execute(IJobExecutionContext context)
{
await Task.Run(() => { Console.WriteLine($@"{"张翼德"}"+DateTime.Now + ""); });
}
}
}

第三步 配置时间策略(确定发车时间)

#region 时间策略
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartNow()
.WithSimpleSchedule(x => x
  .WithIntervalInSeconds()
   .WithRepeatCount())
.Build();
#endregion

WithIdentity():同上

startNow():立即开始一次

WithIntervalInSeconds():一秒一次

WithRepeatCount():最大执行10000次

4. 把任务和时间策略承载到任务单元中 (喝壮行酒,准备上路)

await scheduler.ScheduleJob(jobDetail, trigger);

完整的代码  这个是我新建了一个类库,调用不在这里

using DayWorkCloseService.DayWorkClose;
using Quartz;
using Quartz.Impl;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace DayWorkCloseService
{
public class DayWorkCloseManager
{ public static async Task Init()
{
try
{
#region 创建单元 (时间轴/载体)
StdSchedulerFactory factory = new StdSchedulerFactory();
IScheduler scheduler = await factory.GetScheduler();
await scheduler.Start();
#endregion #region job
IJobDetail jobDetail = JobBuilder.Create<HelloJob>()
.WithDescription("this is a job")
.WithIdentity("job1", "group1")
.Build();
#endregion #region 时间策略
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInSeconds()
.WithRepeatCount())
.Build();
#endregion // Tell quartz to schedule the job using our trigger
await scheduler.ScheduleJob(jobDetail, trigger); }
catch (SchedulerException se)
{
Console.WriteLine(se);
}
}
}
}

准备都做完了,现在开始调用,就一句话,不对,两句

 DayWorkCloseManager.Init().GetAwaiter().GetResult();

 Console.Read();//这个一定要
 done

Quartz.Net 任务调度之简单任务(1)的更多相关文章

  1. 项目一:第十四天 1.在realm中动态授权 2.Shiro整合ehcache 缓存realm中授权信息 3.动态展示菜单数据 4.Quartz定时任务调度框架—Spring整合javamail发送邮件 5.基于poi实现分区导出

    1 Shiro整合ehCache缓存授权信息 当需要进行权限校验时候:四种方式url拦截.注解.页面标签.代码级别,当需要验证权限会调用realm中的授权方法   Shiro框架内部整合好缓存管理器, ...

  2. Quartz.Net 任务调度

    基于ASP.NET MVC(C#)和Quartz.Net组件实现的定时执行任务调度 在之前的文章<推荐一个简单.轻量.功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentSch ...

  3. Spring Quartz实现任务调度

    任务调度 在企业级应用中,经常会制定一些"计划任务",即在某个时间点做某件事情 核心是以时间为关注点,即在一个特定的时间点,系统执行指定的一个操作 任务调度涉及多线程并发.线程池维 ...

  4. Quartz实现任务调度

    一.任务调度概述 在企业级应用中,经常会制定一些"计划任务",即在某个时间点做某件事情,核心是以时间为关注点,即在一个特定的时间点,系统执行指定的一个操作,任务调度涉及多线程并发. ...

  5. quartz.net任务调度:源码及使用文档

    目录: 1.quartz.net任务调度:源码及使用文档 2.quartz.net插件类库封装 前言 前段时间把自己封装quartz.net 类库的过程总结到博客园,有网友想要看一下源码,所以就把源码 ...

  6. 项目ITP(五) spring4.0 整合 Quartz 实现任务调度

    前言 系列文章:[传送门] 项目需求: 二维码推送到一体机上,给学生签到扫描用.然后需要的是 上课前20分钟 ,幸好在帮带我的学长做 p2p 的时候,接触过.自然 quartz 是首选.所以我就配置了 ...

  7. Java&Quartz实现任务调度

    目录 Java&Quartz实现任务调度 1.Quartz的作用 2.预备 3.Quartz核心 3.1.Job接口 3.2.JobDetail类 3.3 JobExecutionContex ...

  8. Quartz.Net任务调度框架

    Quartz.Net是一个开源的任务调度框架,非常强大,能够通过简单的配置帮助我们定时具体的操作. 相对于我们用的线程里面while(true)然后sleep来执行某个操作,应该算的上是高端,大气,上 ...

  9. ASP.NET MVC5 实现基于Quartz.NET任务调度

    工作之余.技术?.记是不可能记住的. 只有写点东西 才能维持得了生活这样子的.好早就像写一篇关于任务调度的文章.终究是太懒了 一.Quartz.NET介绍 Quartz.NET是一个强大.开源.轻量的 ...

随机推荐

  1. 解决swagger跨项目或跨程序集注释不显示问题

    背景 我们在使用Swagger生成.NET Core Web Api 项目接口文档时候,发现接口的入参和出参的注释是看不见的,如下: 但是我想要结果是这样: 原因分析以及方案 为什么没有显示注释呢,注 ...

  2. DZY Loves Chemistry

    DZY Loves Chemistry time limit per test 1 second memory limit per test 256 megabytes input standard ...

  3. 【VisualStdio】在VS2015中显示上下文菜单中“创建单元测试”菜单

    ---恢复内容开始--- VS2012以后创建单元测试的选项被默认隐藏了,创建单元测试变得无比低效率.看msdn的说法好像是想推荐使用Intell Test来替代单元测试的用途,但是还没摸清楚也不敢瞎 ...

  4. delphi 简单的发送字符串消息

    var pMes:^String; begin New(pMes); pMes^:=msg; PostMessage(Application.handle, WM_Custom, 0, Integer ...

  5. yii之relations关联非主键

    yii的relations里self::BELONGS_TO默认是用当前指定的键跟关联表的主键进行join,例如: return array('reply' => array(self::BEL ...

  6. Python 与 C 对比

    到目前为止,我接触最多两种语言应该就是python 和 C 语言了. 个人理解 1. 执行速度不同, python为解释性语言,C是编译型语言(需要编译器) 2. python 是基于C的实现,C中很 ...

  7. docker使用记录一日常使用的命令

    docker官网 介绍docker的文档 https://docs.docker.com/install/linux/docker-ce/centos/ centos 安装docker 卸载cento ...

  8. Visual Studio Code 键盘参考表

    2019年4月6日,对照中英翻译. 一般 Ctrl+Shift+P, F1 显示命令调色板 Ctrl+P 快速打开,转到文件… Ctrl+Shift+N  新建窗口/实例 Ctrl+Shift+W   ...

  9. 分布式服务防雪崩熔断器,Hystrix理论+实战。

    Hystrix是什么? hystrix对应的中文名字是"豪猪",豪猪周身长满了刺,能保护自己不受天敌的伤害,代表了一种防御机制,这与hystrix本身的功能不谋而合,因此Netfl ...

  10. Neo4j查询节点间最短路径

    Neo4j最短路径问题 1.指定某一结点 无向边: MATCH (p1:Person {name:"aaaaaaa"}),(p2:Person{name:"bbbbbb& ...