.net 定时任务调度
前段时间开发个项目需要自定义时间定时发送邮件,此处使用了Quartz 定时任务,在此记录下:
/// <summary>
/// 创建定时任务
/// </summary>
/// <param name="checkData">报告生成时间</param>
/// <param name="timer">报告发送使劲</param>
public void CreateTimingJob(DateTime checkData, DateTime timer)
{
ISchedulerFactory sf = new StdSchedulerFactory();
IScheduler scheduler = sf.GetScheduler();//创建调度实例
//job 名称 命名规则:JobSendEmailTimer+ 报告生成时间
string JobName = "JobSendEmailTimer" + checkData.ToShortDateString().ToString();
//创建任务实例
IJobDetail job = JobBuilder.Create<SendEmailJob>().WithIdentity(JobName, "JobSendEmailTimer").
UsingJobData("reportGenerationDate", checkData.ToShortDateString()) //传参
.Build();
var seconds=timer.Second;
var minutes = timer.Minute;
var hours = timer.Hour;
var day = timer.Day;
var month = timer.Month;
var year = timer.Year; var timerSetting = seconds + " " + minutes + " " + hours + " " + day + " " + month + " " + "? " + year;
// 0 0 0 0 0 0 0 秒 分 时 日 月 周 年
ITrigger trigger = TriggerBuilder.Create().StartAt(DateTime.Now.AddSeconds()).WithCronSchedule(timerSetting).Build();
scheduler.ScheduleJob(job,trigger);
scheduler.Start(); }
public class SendEmailJob:IJob
{
public void Execute(IJobExecutionContext context)
{ //获取传入的参数数据
string data = context.MergedJobDataMap.GetString("reportGenerationDate"); ReportController reportController = new ReportController(); reportController.SendEmailTimer(data);
} }
//删除定时任务
public ApiResult<string> Delete(int id)
{
if (id > )
{
var result = DeleteEntity(id);
//在这里获取数据库定时任务配置记录
var sql = $@"select * from TimerConfig s where s.Id={id}";
var timerResult= DbHelper.GetModel<TimerConfig>(sql);
if (timerResult != null)
{
//job 命名规则
var JobName = "JobSendEmailTimer"+timerResult.ReportGeneratedDate.ToShortDateString().ToString();// TriggerKey triggerKey = new TriggerKey(JobName, "JobSendEmailTimer");
ISchedulerFactory sf = new StdSchedulerFactory();
IScheduler scheduler = sf.GetScheduler();
scheduler.PauseTrigger(triggerKey);//停止触发器
scheduler.UnscheduleJob(triggerKey);//移除触发器
scheduler.DeleteJob(new JobKey(JobName, "JobSendEmailTimer"));//删除任务
} return result;
}
return ApiResult<string>.Failed("删除失败!");
}
.net 定时任务调度的更多相关文章
- #研发中间件介绍#定时任务调度与管理JobCenter
郑昀 最后更新于2014/11/11 关键词:定时任务.调度.监控报警.Job.crontab.Java 本文档适用人员:研发员工 没有JobCenter时我们要面对的: 电商业务链条很长,业 ...
- Java定时任务调度详解
前言 在实际项目开发中,除了Web应用.SOA服务外,还有一类不可缺少的,那就是定时任务调度.定时任务的场景可以说非常广泛,比如某些视频网站,购买会员后,每天会给会员送成长值,每月会给会员送一些电影券 ...
- Spring4.0.1+Quartz2.2.1实现定时任务调度[亲测可用]
Spring4.0.1+Quartz2.2.1实现定时任务调度[亲测可用] tip:只需要配置xml文件即可 1.第三方依赖包的引入 <properties> <project.bu ...
- SpringQuartz 实现定时任务调度
最近公司新项目需要用到定时器,于是研究了一下发现: Spring中使用Quartz有两种方式实现: 第一种是任务类继承QuartzJobBean 第二种则是在配置文件里定义任务类和要执行的方法,类和方 ...
- 开源一个定时任务调度器 webscheduler
在企业应用中定时任务调度的需求是必不可少的,比如定时同步数据,定时结转数据,定时检测异常等等.公司之前是在使用一款采用.net 开发的windows服务形式的定时程序,基本能满足需求,在一段时间的时候 ...
- 一文揭秘定时任务调度框架quartz
之前写过quartz或者引用过quartz的一些文章,有很多人给我发消息问quartz的相关问题, quartz 报错:java.lang.classNotFoundException quartz源 ...
- linux定时任务调度定系统——opencron
linux定时任务调度定系统——opencron https://gitee.com/terrytan/opencron/#%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83 一 ...
- python中的轻量级定时任务调度库:schedule
提到定时任务调度的时候,相信很多人会想到芹菜celery,要么就写个脚本塞到crontab中.不过,一个小的定时脚本,要用celery的话太“重”了.所以,我找到了一个轻量级的定时任务调度的库:sch ...
- 11: python中的轻量级定时任务调度库:schedule
1.1 schedule 基本使用 1.schedule 介绍 1. 提到定时任务调度的时候,相信很多人会想到芹菜celery,要么就写个脚本塞到crontab中. 2. 不过,一个小的定时脚本,要用 ...
- java定时任务调度工具
一.什么是定时任务调度 基于给定的时间点,给定的时间间隔或者给定的时间执行次数自动执行的任务. 二.java中常用的定时任务调度工具: Timer Quartz 2.1两者区别: Timer源自jdk ...
随机推荐
- flash的几种模式Normal Mode、DUAL Mode、Quad Mode的概念和区别
概念 1. 标准SPI 标准SPI通常就称SPI,它是一种串行外设接口规范,有4根引脚信号:clk , cs, mosi, miso 2. Dual SPI 它只是针对SPI Flash而言,不是针对 ...
- MongoDB增删改查表文档
MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,是一个基于分布式文件存储的开源数据库系统.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关 ...
- thinkphp5.0学习笔记
2019-11-11学习笔记 安装TP5.0 a)源代码包下载 在thinkphp官网下载(www.thinkphp.cn)下载 完整版本的TP5.0 b) composer 安装 切换到网站的根目录 ...
- ETCD:系统限制
原文地址:System limits 请求大小限制 etcd被设计用来处理小键值对典型的如元数据.较大的请求数据也起作用,但可能会增加其他请求的延迟.默认情况下,任意的请求最大的空间为1.5MiB,这 ...
- 呵呵,asp.net 屁东西我都会忘记
ASP.NET中的好些基本的东西有的忘了,有的需要学,从现在开始,给自己开一个基本的常用知识点的总结,一是学习,二是备忘. 今天算是第一篇吧! DropDownList在从数据库中得到数据源绑定后,计 ...
- URL跳转绕过姿势
POC "@" http://www.target.com/redirecturl=http://whitelist.com@evil.com "\" http ...
- “强大”的MapPPP
写在前面 因为要给用户发送通知提醒,项目中有个短信模板/微信模板/钉钉模板/邮件模板的占位符替换的class.其中一段代码的逻辑是根据入参(model/json)来定义要替换的占位符集合,使用的是Ma ...
- PM8909 linear charger硬件概述
电池充电是由qpnp-vm-bus.c(电池驱动BMS)和qpnp-linear-charger.c(线性充电器)组成: SMMB charger:Switch-ModeBattery Charger ...
- JUC-3-ConcurrentHashMap
ConcurrentHashMap 锁分段机制 JDK1.8
- Day6 - Python基础6 模块shelve、xml、re、subprocess、pymysql
本节目录: 1.shelve模块 2.xml模块 3.re模块 4.subprocess模块 5.logging模块 6.pymysql 1.shelve 模块 shelve模块是一个简单的k,v将内 ...