Web开发:通过Quatz开启定时任务调度的基础demo

一、demo程序

【需求】实现每10分钟输出当前时间到txt文档

using Quartz;
using Quartz.Impl;
using System;
using System.IO;
using System.Threading.Tasks;namespace QuartzDemo
{class Program{static async Task Main(string[] args){// 创建一个调度程序实例IScheduler scheduler = await StdSchedulerFactory.GetDefaultScheduler();await scheduler.Start();// 定义作业和将作业添加到调度程序IJobDetail job = JobBuilder.Create<WriteTimeJob>()//【设置一个作业WriteTimeJob】.WithIdentity("writeTimeJob", "group1")// 设置作业的标识符,name 为 "writeTimeJob"(唯一标识作业),group 为 "group1".Build();// 创建一个触发器,每 10 分钟触发一次ITrigger trigger = TriggerBuilder.Create().WithIdentity("writeTimeTrigger", "group1")// 设置触发器的标识符,name 为 "writeTimeTrigger"(唯一标识触发器),group 为 "group1".StartNow()// 触发器立即开始.WithSimpleSchedule(x => x.WithIntervalInMinutes(10)// 间隔10分钟.RepeatForever())// 一直重复执行.Build();//WithCronSchedule("0 0/5 8-18 * * ?") // Cron表达式,表示每天8:00到18:00,每5分钟执行一次// 将作业和触发器添加到调度程序await scheduler.ScheduleJob(job, trigger);// 阻止主线程退出Console.WriteLine("Press any key to close the application...");Console.ReadKey();// 停止调度程序await scheduler.Shutdown();}}public class WriteTimeJob : IJob{public Task Execute(IJobExecutionContext context){string filePath = "current_time.txt";//输出位置.\QuaztDemo\bin\Debug\net6.0string currentTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");// 将当前时间写入文件File.AppendAllText(filePath, currentTime + Environment.NewLine);Console.WriteLine($"Time written to {filePath}: {currentTime}");return Task.CompletedTask;}}
}

二、Cron表达式

例如表达式:

"0 0/5 8-18 * * ?"

表达的是:在每天从早上8点到晚上6点(包括6点),每5分钟在每小时的第0秒触发一次。例如,触发时间点包括8:00、8:05、8:10、...、18:00。

秒 (秒) | 分 (分) | 小时 (时) | 日 (日) | 月 (月) | 星期 (星期) | 年 (年) (可选)

解析 "0 0/5 8-18 * * ?"

  1. 秒 (0):

    • 0 表示每分钟的第0秒触发。
  2. 分 (0/5):

    • 0/5 表示每小时的第0、5、10、15、20、25、30、35、40、45、50、55分钟触发,即每5分钟触发一次。
  3. 小时 (8-18):

    • 8-18 表示每天从8点到18点(包含18点)之间的每个小时触发。
  4. 日 (*):

    • * 表示每一天,即不限制具体的日期。
  5. 月 (*):

    • * 表示每个月,即不限制具体的月份。
  6. 星期 (?):

    • ? 表示不指定星期几。? 和 * 都可以用来表示“不指定”,但在某些情况下,? 用于表示不关注这一字段的具体值。

【举例】

五个常见的Cron表达式及其解释:

1. **每小时的第15分钟触发一次**
   - 表达式: `0 15 * * * ?`
   - 解释: 每小时的第15分钟,即 00:15、01:15、02:15 等。

2. **每天午夜12点执行**
   - 表达式: `0 0 0 * * ?`
   - 解释: 每天午夜12点,即00:00。

3. **每周一早上8点执行**
   - 表达式: `0 0 8 ? * MON`
   - 解释: 每周一早上8点。

4. **每月1号凌晨1点执行**
   - 表达式: `0 0 1 1/1 ? *`
   - 解释: 每月1号凌晨1点,即01:00。

5. **每分钟执行一次**
   - 表达式: `0 * * * * ?`
   - 解释: 每分钟的第0秒执行,即每分钟一次。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/52468.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nacos的配置更改了还要重启服务才生效

optoelectronic:azimuth: 117.1pitch: -3.81distance: 0.25 原写法: import lombok.Data; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component;import javax.annotation.PostConstruct; import java.math.BigDecima…

J.U.C Review - 基本概念:进程、线程、线程组、优先级

文章目录 进程与线程的故事1.1 进程的诞生对操作系统的要求进一步提高为什么我们要使用多线程&#xff1f; 1.2 上下文切换的故事 Java多线程入门1. 继承Thread类代码示例 2. 实现Runnable接口代码示例 3. Thread类的构造方法和常用方法构造方法常用方法 4. Thread类与Runnable…

数据结构(邓俊辉)学习笔记】串 07——KMP算法:分摊分析

文章目录 1.失之粗糙2.精准估计 1.失之粗糙 以下&#xff0c;就来对 KMP 算法的性能做一分析。我们知道 KMP 算法的计算过程可以根据对齐位置相应的分为若干个阶段&#xff0c;然而每一个阶段所对应的计算量是有很大区别的。很快就会看到&#xff0c;如果只是简单地从最坏的角…

Qt5.14.2 操作PostgreSQL 记录

在Qt5.14.2中操作PostgreSQL数据库. #include <QSqlDatabase> #include <QSqlQuery> #include <QSqlError> #include <QDebug>// 初始化数据库连接QSqlDatabase db QSqlDatabase::addDatabase("QPSQL");//qDebug() << "aaaa&qu…

CocosCreator3.8 IOS 构建插屏无法去除的解决方案

CocosCreator3.8 IOS 构建插屏无法去除的解决方案 在实际项目开发过程中&#xff0c;我们通常无需CocosCreator 自带的插屏&#xff0c;一般采用自定义加载页面。 然后在构建IOS 项目时&#xff0c;启用&#xff08;禁用&#xff09;插屏无法操作&#xff0c;如下图所示&#…

运放阻抗和噪声(同相放大器的输入/输出阻抗 + 电压跟随器阻抗 + 噪声 +信噪比)

2024-8-27&#xff0c;星期一&#xff0c;21:03&#xff0c;天气&#xff1a;阴雨&#xff0c;心情&#xff1a;晴。培训终于结束啦&#xff0c;开始轮岗了&#xff0c;看了两天PPT&#xff0c;加油加油&#xff0c;继续学习。 今天继续学习第六章运算放大器&#xff0c;主要学…

第4章 汇编语言和汇编软件

第4章 汇编语言和汇编软件 该章主要介绍了汇编语言和汇编语言编译器的安装和使用。 汇编语言程序 该小节主要介绍了为什么要有汇编语言和汇编语言程序的一些基础写法。 书中有提到CPU有不同的架构&#xff0c;汇编语言有不同的风格&#xff0c;那么不同的CPU架构和不同的汇…

正则表达式——详解

正则表达式是什么&#xff1f; 正则表达式&#xff08;Regular Expression&#xff0c;通常简写为 regex、regexp 或 RE&#xff09;是一种强大的文本处理工具&#xff0c;用于描述一组字符串的模式。它可以用来匹配、查找、替换等操作&#xff0c;几乎所有现代编程语言都支持…

cola_os学习笔记(上)

cola_os的学习笔记 声明 该项目系本人学习项目所做的笔记。该项目的项目地址为cola_os: 300行代码实现多任务管理的OS&#xff0c;在很多MCU开发中&#xff0c;功能很简单&#xff0c;实时性要求不强&#xff0c;如果使用RTOS显得太浪费&#xff0c;任务多了管理不当又很乱&a…

Anaconda3简介与安装步骤

目录 Anaconda3简介与功能 1.Anaconda3简介 2.主要功能和特点 3.使用场景 4.总结 Anaconda3安装 1.Anaconda3下载 1.1我的百度网盘 1.2官网下载 1.2.1访问官网 1.2.2输入邮箱 1.2.3登录你的邮箱下载&#xff08;你的噶&#xff09; 2.安装 2.1双击安装 2.2选择安…

开启创意编程新篇章:Scratch的持续创新与功能拓展

开启创意编程新篇章&#xff1a;Scratch的持续创新与功能拓展 Scratch&#xff0c;这款广受全球儿童和教育工作者喜爱的编程工具&#xff0c;从未停止过创新的步伐。随着技术的发展和用户需求的增长&#xff0c;Scratch团队一直在不断地为其添加新的编程特性和功能。本文将综合…

【Android】如何使用adb抓取Android系统的WiFi日志

🐚作者简介:花神庙码农(专注于Linux、WLAN、TCP/IP、Python等技术方向)🐳博客主页:花神庙码农 ,地址:https://blog.csdn.net/qxhgd🌐系列专栏:WLAN技术📰如觉得博主文章写的不错或对你有所帮助的话,还望大家三连支持一下呀!!! 👉关注✨、点赞👍、收藏�…

计算机视觉编程 3(图片处理)

目录 图像差分 高斯差分 形态学-物体计数 ​编辑 图片降噪 图像差分 # -*- coding: utf-8 -*- from PIL import Image from pylab import * from scipy.ndimage import filters import numpy# 添加中文字体支持 from matplotlib.font_manager import FontProperties font…

groovy闭包语法详解(二)

文章目录 线程中的闭包调用自定义闭包重写doCall查找并调用闭包成员闭包中的形参扩展闭包的实参控制 线程中的闭包调用 package com.juan.groovyclass MyThread extends Thread {// 闭包成员变量Closure closureMyThread(Closure c) {this.closure c// 启动线程&#xff0c;运…

数据结构基础.顺序表与链表

数据结构&#xff1a; 1.衡量一个程序是否优秀&#xff1a; 1.时间复杂度&#xff1a; 数据量增长与程序运行时间的比例关系以函数描述称为时间渐进复杂度函数,简称时间复杂度 O(c) > O(logn) > O(n) > O(nlogn) > O(n^2) > O(n^3) > O…

VMWare中添加Ubuntu20.04.06镜像

一、下载Ubuntu镜像 Ubuntu20.04&#xff1a; 官方下载地址https://releases.ubuntu.com/20.04.6/ 进入官网 点击下图红框位置&#xff0c;下载镜像镜像名为ubuntu-20.04.6-desktop-amd64.iso 也可点击下面链接直接下载&#xff1a;https://releases.ubuntu.com/20.04.6/ubu…

车间多台分散PLC如何在不同协议的情况下实现无线通讯?

项目背景 为推动企业智能化数字化升级&#xff0c;积极响应节能减排与能源可持续发展的号召&#xff0c;进一步增强企业竞争力&#xff0c;同时为避免大幅度电缆铺设及维护工作&#xff0c;厂区需要针对目前的燃煤发电作业进行技术及流程的无线改造。通过这些无线技改措施的实施…

2023年最新自适应主题懒人网址导航v3.9php源码

源码简介 这个懒人网址导航源码是一个基于PHPMySQL开发的网址导航系统。该版本是在原有3.8版本的基础上进行了修复和功能增强。我们建议新用户直接使用这个最新版本&#xff0c;放弃旧版本。如果你有二次开发的能力&#xff0c;可以根据更新日志自行进行升级。我们将在后期继续…

oracle和mysql查询某字段在哪个表中

oracle和mysql查询某字段在哪个表中 oracle的 select TABLE_NAME from user_tab_columns where COLUMN_NAME字段名mysql的&#xff1a; select table_schema ,table_name from information_schema.columns where column_name ‘字段名’ 查询结果table_schema为数据库名&a…

记录一次target引发的事故:一直提示数据库连接超时

你们好&#xff0c;我是金金金。 场景 启动项目&#xff0c;一直报数据库连接超时&#xff1a; The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. The error may exist in com/xuecheng/sy…