当前位置: 首页 > 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 …...

如何快速掌握raylib游戏开发:面向初学者的完整实践指南

如何快速掌握raylib游戏开发&#xff1a;面向初学者的完整实践指南 【免费下载链接】raylib A simple and easy-to-use library to enjoy videogames programming 项目地址: https://gitcode.com/GitHub_Trending/ra/raylib 你是否曾梦想过开发自己的游戏&#xff0c;却…...

英雄联盟Akari助手:从青铜到王者的智能游戏效率革命

英雄联盟Akari助手&#xff1a;从青铜到王者的智能游戏效率革命 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在为英雄联盟游戏中的重复操…...

从‘一片黑’到重点突出:手把手教你用ArcGIS为乡镇规划图添加专业级影像蒙版

从‘一片黑’到重点突出&#xff1a;手把手教你用ArcGIS为乡镇规划图添加专业级影像蒙版 在乡镇规划汇报中&#xff0c;一张能清晰传达重点区域的地图往往比千言万语更有说服力。想象一下这样的场景&#xff1a;当决策者面对一张全区域亮度均一的遥感影像时&#xff0c;他们的视…...

基于RAG的德国开放数据智能问答助手:从原理到工程实践

1. 项目概述&#xff1a;当德国开放数据遇上GPT最近在折腾一个挺有意思的项目&#xff0c;叫 OpenDataGermanyGPT。光看名字&#xff0c;你可能觉得这又是一个“GPT套壳”应用&#xff0c;但实际玩下来&#xff0c;我发现它的核心价值远不止于此。简单来说&#xff0c;这是一个…...

影刀 RPA 给出的企业落地 RPA 项目的组织效率方案

一、组织架构与角色分工 1. 核心角色与职责 表格 角色 核心属性 关键职责 项目经理 管理属性 统筹 RPA 项目全流程:培训信息统计、账号协调、需求评估、进度管理、成果汇报 RPA 专员 强开发属性 承接高价值、高难度流程开发;可与项目经理为同一人 业务部门 需求 + 使用 + 弱…...

AI智能体框架选型指南:从LangChain到AutoGen的实战解析

1. 项目概述&#xff1a;为什么我们需要一个“智能体框架”导航站&#xff1f;最近几年&#xff0c;如果你关注AI领域&#xff0c;尤其是大语言模型的应用开发&#xff0c;一定会被一个词频繁刷屏&#xff1a;Agent&#xff08;智能体&#xff09;。它不再是科幻电影里的概念&a…...

【无人艇】基于SMC滑模控制的AUV自主水下机器人控制器研究Matlab、Simulink仿真实现

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。 &#x1f34e;完整代码获取 定制创新 论文复现点击&#xff1a;Matlab科研工作室 &#x1f447; 关注我领取海量matlab电子书和数学建模资料 &…...

深度学习模型边缘部署技术与优化实践

1. 深度学习模型边缘部署的技术全景在计算机视觉和自然语言处理领域&#xff0c;深度学习模型的边缘部署正经历着从理论到实践的深刻变革。与传统的云端部署相比&#xff0c;边缘部署将计算能力下沉到终端设备&#xff0c;实现了数据处理的本土化。这种转变不仅大幅降低了网络延…...

零基础录音转日程教程包教包会避坑,看完就能直接上手

做销售近5年&#xff0c;日常需频繁跑客户拜访、对接客户&#xff0c;每次沟通结束后&#xff0c;将录音整理成待办日程都十分繁琐&#xff0c;先和大家分享我之前踩过的一些坑&#xff0c;不少同行可能也有类似经历。第一个坑是误以为录音转日程&#xff0c;只需先将录音转成文…...

深入解析 gRPC:高性能开源 RPC 框架的原理与实战

深入解析 gRPC&#xff1a;高性能开源 RPC 框架的原理与实战 文章目录深入解析 gRPC&#xff1a;高性能开源 RPC 框架的原理与实战引言一、gRPC 概览二、核心技术解析1. HTTP/2&#xff1a;传输层的革命2. Protocol Buffers&#xff1a;高效的序列化与契约3. 四种服务方法&…...