很多情况下,我们需要完成一些定时执行的功能,用很多定时工具,像:hangfire,TimeJob,以及Quartz.net,不过quartz.net 比较精确一些,功能也比较强大,所以我选择了Quart.net,Quartz.net更新之后就支持.net core 了,非常强大的定时工具之一。

使用Quartz.net之前,我们需要引入Nuget包,在Nuget包管理器中搜索Quartz,点击安装就可以了,当然也可以在包控制台里输入

Install-Package Quartz

安装成功之后,我们需要一个定义job类去实现我们的触发器,如下:

    using Quartz;
using Quartz.Impl; public class QuartzJob
{
public static async void CreateJob(string name, string group, string cron)
{
ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
IScheduler scheduler = await schedulerFactory.GetScheduler(); DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(DateTime.Now,);
DateTimeOffset endTime = DateBuilder.NextGivenMinuteDate(DateTime.Now, ); IJobDetail job = JobBuilder.Create<QuartzTest>()
.WithIdentity(name,group)
.Build(); ICronTrigger cronTrigger = (ICronTrigger)TriggerBuilder.Create()
.StartAt(startTime)
.EndAt(endTime)
.WithIdentity(name, group)
.WithCronSchedule(cron)
.Build(); await scheduler.ScheduleJob(job, cronTrigger);
await scheduler.Start();
}
}

首先别忘了引用命名空间

using Quartz;  using Quartz.Impl;

然后这里有三个参数,name和group 是这个job也就是这个定时任务的身份标识,而cron则是你想要定时的表达式。

cron表达式:从左到右分别为:秒 分 小时 月份中的日期 月份 星期中的日期 年份 (中间用空格隔开)。其中年份可空。

字段 允许值 允许的特殊字符 
秒 0-59 , - * / 
分 0-59 , - * / 
小时 0-23 , - * / 
日期 1-31 , - * ? / L W C 
月份 1-12 或者 JAN-DEC , - * / 
星期 1-7 或者 SUN-SAT , - * ? / L C # 
年(可选) 留空, 1970-2099 , - * /

参考:原文:https://blog.csdn.net/weixin_40426638/article/details/78959972

然后我们需要定义一个类去实现我们触发器要执行的方法。也就是我们要实现的功能,如下:

  public class QuartzTest : IJob
{
/// <summary>
/// 触发器触发之后执行的方法
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
public async Task Execute(IJobExecutionContext context)
{
string path = @"C:\Users\win 10\Desktop\1.txt";
string value = DateTime.Now.ToString();
if (File.Exists(path))
{
File.Delete(path);
}
StreamWriter streamWriter = new StreamWriter(path,true);
await streamWriter.WriteLineAsync(value);
streamWriter.Flush();
streamWriter.Close();
}
}

当然别忘了引入

using Quartz;

这里注意必需要用到异步方法。这里实现的就是你想要实现的方法了。

总的来说,Quart.Net使用非常方便,而且功能十分强大。如有错误,欢迎指正,谢谢!

.Net core使用Quartz.Net 实现定时任务的更多相关文章

  1. .net core+topshelf+quartz创建windows定时任务服务

    .net core+topshelf+quartz创建windows定时任务服务 准备工作 创建.net core 控制台应用程序,这里不做过多介绍 添加TopShelf包:TopShelf: 添加Q ...

  2. .net core 2.1控制台使用Quartz.net实现定时任务执行

    权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_33435149/article/de ...

  3. .NET Core开源Quartz.Net作业调度框架实战演练

    一.需求背景 人生苦短,我用.NET Core!作为一枚后端.NET开发人员,项目实践常遇到定时Job任务的工作,在Windows平台最容易想到的的思路Windows Service服务应用程序,而在 ...

  4. 3分钟掌握Quartz.net分布式定时任务的姿势

    引言 长话短说,今天聊一聊分布式定时任务,我的流水账笔记: ASP.NET Core+Quartz.Net实现web定时任务 AspNetCore结合Redis实践消息队列 细心朋友稍一分析,就知道还 ...

  5. 使用Spring整合Quartz轻松完成定时任务

    一.背景 上次我们介绍了如何使用Spring Task进行完成定时任务的编写,这次我们使用Spring整合Quartz的方式来再一次实现定时任务的开发,以下奉上开发步骤及注意事项等. 二.开发环境及必 ...

  6. spring Quartz多个定时任务的配置

    Quartz多个定时任务的配置 1,配置文件与spring整合,需要在spring 的总配置中一入或者在web.xml中spring监听中加上 ztc_cp-spring-quartz.xml 注:定 ...

  7. Spring 3整合Quartz 2实现定时任务--转

    常规整合 http://www.meiriyouke.net/?p=82 最近工作中需要用到定时任务的功能,虽然Spring3也自带了一个轻量级的定时任务实现,但感觉不够灵活,功能也不够强大.在考虑之 ...

  8. Spring 整合 Quartz 实现动态定时任务

    复制自:https://www.2cto.com/kf/201605/504659.html 最近项目中需要用到定时任务的功能,虽然Spring 也自带了一个轻量级的定时任务实现,但感觉不够灵活,功能 ...

  9. 在ASP.NET MVC4中使用Quartz.NET执行定时任务

    本篇在ASP.NET MVC下实践使用Quartz.NET执行定时任务. 首先通过NuGet安装Quartz.NET. 使用Quartz.NET的大致思路是:1.实现IJob接口,定义具体要做的事情2 ...

随机推荐

  1. 日常捕获的野生知识 - javascript获取屏幕大小

    刚刚接触JavaScript,涉及到 document , window 的一些基本知识不是很了解,今天为了一个屏幕大小折腾了半天,幸好找到了很好的例子学习. 代码如下: <html> & ...

  2. 项目经验:GIS<MapWinGIS>建模第五天

    实现连能性的分析,及分析完成后,针对独立的块区域进行管网的修补工作 实现步骤如下图所示:

  3. c++中%是什么意思?

    两种意思:1.格式化字符串输出2.整数取余 1.目前printf支持以下格式的输出,例如:printf("%c",a):输出单个字符.printf("%d",a ...

  4. 关于Flume以及Kafka理解

  5. androidtab

    https://github.com/H07000223/FlycoTabLayout tensorflow https://github.com/topics/tensorflow-examples ...

  6. sqlserver函数教程

    sqlserver聚合函数教程: mssql sqlserver avg聚合函数使用简介mssql sqlserver CHECKSUM_AGG聚合函数使用简介mssql sqlserver coun ...

  7. mysql中通过my.cnf设置默认字符集utf-8

    选项配置 配置文件路径:/full/path/mysql/bin/my.cnf (默认为/etc/my.cnf ) [client] default-character-set=utf8 [mysql ...

  8. Linux中nmon的安装与使用

    一.下载nmon. 根据CPU的类型选择下载相应的版本:http://nmon.sourceforge.net/pmwiki.php?n=Site.Downloadwget http://source ...

  9. xcode9 unity3d 新坑

    1.metal调试会报错,要在edit scheme里关掉

  10. [零基础学JAVA]Java SE基础部分-03. 运算符和表达式

    转自:http://redking.blog.51cto.com/27212/116751 1.课程名称:运算符.表达式 讲解了JAVA中各种运算符的使用,包括与.或.非.大于.小于等. 2.知识点 ...