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

Quartz.net 正则表达式触发器

1、创建项目

项目类型控制台应用程序,.Net Framework框架版本 4.7.2

2、引入框架

NuGet\Install-Package Quartz -Version 3.8.0

3、创建Job

自定义Job实现接口IJob,在Execute方法实现定时逻辑,

using Quartz;
using System;
using System.Threading.Tasks;namespace QuartzConsole
{public class MyJob : IJob{public Task Execute(IJobExecutionContext context){return Console.Out.WriteLineAsync($"任务开始执行了:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");}}
}

4、创建调度器实例

使用工厂类StdSchedulerFactory创建调度器实例,

StdSchedulerFactory factory = new StdSchedulerFactory();//创建工厂实例var scheduler = await factory.GetScheduler();//创建调度器await scheduler.Start();//启动调度器

5、创建Job实例

使用Job构建器创建任务实例,

IJobDetail job = JobBuilder.Create<MyJob>().WithIdentity("job1", "group1").Build();

6、创建触发器

使用触发器构建器创建触发器实例,触发器包含简单触发器和正则表达式触发器,比如重复执行多少次这种简单的逻辑,可以使用简单触发器,比如每天21点-23点,每隔2分钟的第5秒开始执行任务,则适合使用正则表达式触发器来构建。

简单触发器:

 #region 简单触发器,每隔5秒重复执行ITrigger trigger = TriggerBuilder.Create().WithIdentity("trigger", "group1").WithSimpleSchedule(x=>x.WithInterval(TimeSpan.FromSeconds(5)).RepeatForever()).Build();#endregion

正则表达式触发器:

#region 每天21点-23点,每隔2分钟的第5秒开始执行ITrigger trigger = TriggerBuilder.Create().WithIdentity("trigger", "group1").WithCronSchedule("5 0/2 21-23 * * ?").Build();#endregion

触发器正则表达式生成可以借助工具,参考链接:

Free Online Cron Expression Generator and Describer - FreeFormatter.com

7、将任务和触发器安排到调度器

await scheduler.ScheduleJob(job, trigger);

8、完整代码

using Quartz;
using Quartz.Impl;
using Quartz.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace QuartzConsole
{class Program{async static Task Main(string[] args){StdSchedulerFactory factory = new StdSchedulerFactory();var scheduler = await factory.GetScheduler();await scheduler.Start();IJobDetail job = JobBuilder.Create<MyJob>().WithIdentity("job1", "group1").Build();//#region 每天21点-23点,每隔2分钟的第5秒开始执行//ITrigger trigger = TriggerBuilder.Create()//    .WithIdentity("trigger", "group1")//    .WithCronSchedule("5 0/2 21-23 * * ?")//    .Build();//#endregion//#region 每天21:33执行//ITrigger trigger = TriggerBuilder.Create()//    .WithIdentity("trigger", "group1")//    .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(21,33))//    .Build();//#endregion#region 每周五21:36执行//ITrigger trigger = TriggerBuilder.Create()//    .WithIdentity("trigger", "group1")//    .WithSchedule(CronScheduleBuilder.WeeklyOnDayAndHourAndMinute(DayOfWeek.Friday,21,36))//    .Build();//ITrigger trigger = TriggerBuilder.Create()//    .WithIdentity("trigger", "group1")//    .WithCronSchedule("0 39 21 ? * FRI")//    .Build();#endregion#region 简单触发器,每隔5秒重复执行ITrigger trigger = TriggerBuilder.Create().WithIdentity("trigger", "group1").WithSimpleSchedule(x=>x.WithInterval(TimeSpan.FromSeconds(5)).RepeatForever()).Build();#endregionawait scheduler.ScheduleJob(job, trigger);Console.WriteLine("Press any key to close the application");Console.ReadKey();}}
}

官方学习文档:Cron Triggers | Quartz.NET

相关文章:

Quartz.net 正则表达式触发器

1、创建项目 项目类型控制台应用程序&#xff0c;.Net Framework框架版本 4.7.2 2、引入框架 NuGet\Install-Package Quartz -Version 3.8.0 3、创建Job 自定义Job实现接口IJob&#xff0c;在Execute方法实现定时逻辑&#xff0c; using Quartz; using System; using Sys…...

【已解决】修改了网站的class样式name值,会影响SEO,搜索引擎抓取网站及排名吗?

问题&#xff1a; 修改了网站的class样式name值&#xff0c;会影响搜索引擎抓取网站及排名吗&#xff1f; 解答&#xff1a; 如果你仅仅修改了网站class样式的名称&#xff0c;而没有改变网站的结构和内容&#xff0c;那么搜索引擎通常不会因此而影响它对网站的抓取和排名。但…...

微信小程序开发系列-02注册小程序

上一篇文章&#xff0c;创建了一个最小的小程序&#xff0c;但是&#xff0c;还有3个疑问没有弄清楚&#xff0c;还是基于demo1工程&#xff0c;这篇文章继续探索。 当前的目录结构是否是完备的呢&#xff1f;&#xff08;虽然小程序可以运行起来&#xff09;app.js文件内容还…...

安装 PyCharm 2021.1 保姆级教程

作者&#xff1a;billy 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 前言 目前能下载到的最新版本是 PyCharm 2021.1。 请注意对应 Python 的版本&#xff1a; Python 2: 2.7Python 3: >3.6, <3.11…...

浏览器 cookie 的原理(详)

目录 1&#xff0c;cookie 的出现2&#xff0c;cookie 的组成浏览器自动发送 cookie 的条件 3&#xff0c;设置 cookie3.1&#xff0c;服务端设置3.1&#xff0c;客户端设置3.3&#xff0c;删除 cookie 4&#xff0c;使用流程总结 整理和测试花了很大时间&#xff0c;如果对你有…...

StringBuilder和StringBuffer区别是什么?

想象一下&#xff0c;你在写信&#xff0c;但是你需要不断地添加新的内容或者修改一些词句。在编程中&#xff0c;当你需要这样操作字符串时&#xff0c;就可以用StringBuffer或StringBuilder。 StringBuffer StringBuffer就像是一个多人协作写作的工具。如果你和你的朋友们一…...

【数据分析】数据指标的分类及应用场景

数据分析之数据指标的分类 数据分析离不开对关键指标的分析与跟踪&#xff0c;这些指标通常与具体的业务直接相关。好的指标能够促进业务的健康发展&#xff0c;因为指标与业务目标是一致的&#xff0c;此时指标就能反映业务变化&#xff0c;指标发生变化&#xff0c;行动也发…...

首涂第二十八套_新版海螺M3多功能苹果CMSv10自适应全屏高端模板

首涂第二十八套_新版海螺M3多功能苹果cmsv10自适应全屏高端模板 多功能苹果cmsv10自适应全屏高端模板开源授权版 这是一款带“主题管理系统”的模板。这是一款好模板。 花大价钱收购了海螺这两个模板的版权。官方正品&#xff0c;非盗版。关闭域名授权 后台自定义菜单 请把…...

MatGPT - 访问 OpenAI™ ChatGPT API 的 MATLAB® 应用程序

系列文章目录 前言 MatGPT 是一款 MATLAB 应用程序&#xff0c;可让您轻松访问 OpenAI 的 ChatGPT API。使用该应用程序&#xff0c;您可以加载特定用例的提示列表&#xff0c;并轻松参与对话。如果您是 ChatGPT 和提示工程方面的新手&#xff0c;MatGPT 不失为一个学习的好方…...

Tomcat转SpringBoot、tomcat升级到springboot、springmvc改造springboot

Tomcat转SpringBoot、tomcat升级到springboot、springmvc改造springboot 起因&#xff1a;我接手tomcat-springmvc-hibernate项目&#xff0c;使用tomcat时问题不大。自从信创开始&#xff0c;部分市场使用国产中间件&#xff0c;例如第一次听说的宝兰德、东方通&#xff0c;还…...

浅述无人机技术在地质灾害应急救援场景中的应用

12月18日23时&#xff0c;甘肃临夏州积石山县发生6.2级地震&#xff0c;震源深度10千米&#xff0c;灾区电力、通信受到影响。地震发生后&#xff0c;无人机技术也火速应用在灾区的应急抢险中。目前&#xff0c;根据受灾地区实际情况&#xff0c;翼龙-2H应急救灾型无人机已出动…...

js-cookie的使用以及存储token安全的注意要点

js-cookie的使用以及存储token安全的注意要点 npm 安装 npm i js-cookie -S // https://www.npmjs.com/package/js-cookie引入使用 import Cookies from js-cookie获取 Cookies.get(token); // 读取token Cookies.get() // 读取所有可见的 Cookie > { token: value }设置…...

Android 网络状态判断

1、获取网络信息&#xff0c;首先需要获取权限 <uses-permission android:name"android.permission.INTERNET" /> <uses-permission android:name"android.permission.ACCESS_NETWORK_STATE" /> 2.1我们通过ConnectivityManager可以获取状态…...

管理类联考——数学——真题篇——按知识分类——代数——数列

【等差数列 ⟹ \Longrightarrow ⟹ 通项公式&#xff1a; a n a 1 ( n − 1 ) d a m ( n − m ) d n d a 1 − d A n B a_n a_1(n-1)d a_m(n-m)dnda_1-dAnB an​a1​(n−1)dam​(n−m)dnda1​−dAnB ⟹ \Longrightarrow ⟹ A d &#xff0c; B a 1 − d Ad&#x…...

.net core webapi 自定义异常过滤器

1.定义统一返回格式 namespace webapi;/// <summary> /// 统一数据响应格式 /// </summary> public class Results<T> {/// <summary>/// 自定义的响应码&#xff0c;可以和http响应码一致&#xff0c;也可以不一致/// </summary>public int Co…...

SuperMap iServer发布的ArcGIS REST 地图服务如何通过ArcGIS API加载

作者&#xff1a;yx 文章目录 一、发布服务二、代码加载三、结果展示 一、发布服务 SuperMap iServer支持将地图发布为ArcGIS REST地图服务&#xff0c;您可以在发布服务时直接勾选ArcGIS REST地图服务&#xff0c;如下图所示&#xff1a; 也可以在已发布的地图服务中&#x…...

python调用GPT API

每次让gpt给我生成一个调用api的程序时&#xff0c;他经常会调用以前的一些api的方法&#xff0c;导致我的程序运行错误&#xff0c;所以这期记录一下使用新的方法区调用api 参考网址 Migration Guide&#xff0c;这里简要地概括了一下新版本做了哪些更改 OpenAI Python API l…...

ModuleNotFoundError: No module named ‘tensorflow‘

直接运行pip install tensorflow安装成功之后&#xff0c;发现版本是tensorflow2.15.0 python的版本是3.9版本 导入包&#xff1a;import tensorflow 打包xxx.exe,调用之后提示错误 ModuleNotFoundError: No module named tensorflow 最后发现特定的python的版本对应特定的t…...

智能优化算法应用:基于鹰栖息算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于鹰栖息算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于鹰栖息算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.鹰栖息算法4.实验参数设定5.算法结果6.参考文…...

自定义Taro上传图片hooks(useUploadImg)

有两个方法需要提前引入 FileUtil(上传文件的方法)、to&#xff08;对请求接口返回做了二次处理&#xff0c;数据和错误提示等&#xff09; //FileUtil export namespace FileUtil {const env {timeout: 10000,uploadImageUrl: "阿里云的地址",};const genPolicy …...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...