当前位置:网站首页>.Net Core 下使用 Quartz —— 【5】作业和触发器之触发器的通用属性和优先级
.Net Core 下使用 Quartz —— 【5】作业和触发器之触发器的通用属性和优先级
2022-04-23 05:55:00 【番茄大侠本尊】
作业相关的知识点就告一段落了,下面会重点学习触发器
1、触发器的通用属性:
所有的触发器都会具有以下三个属性
JobKey
该属性表示,触发器触发时,应该执行的作业的唯一标识(作业的key)
StartTimeUtc
属性指示触发器的时间表何时首次生效(该值是DateTimeOffset 对象)
EndTimeUtc
属性指示触发器的时间表何时不再有效
下面是完整代码演示
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
//注册调度器工厂
services.AddSingleton<ISchedulerFactory>(new StdSchedulerFactory());
}
HomeController.cs
using Microsoft.AspNetCore.Mvc;
using Quartz;
using System;
using System.Threading.Tasks;
namespace QuartzLearn.Controllers
{
public class HomeController : Controller
{
//调度器工厂
private readonly ISchedulerFactory _schedulerFactory;
//构造函数注入
public HomeController(ISchedulerFactory schedulerFactory)
{
//注入调度器工厂
_schedulerFactory = schedulerFactory;
}
public async Task<IActionResult> Index()
{
IScheduler scheduler = await _schedulerFactory.GetScheduler();
await scheduler.Start();
IJobDetail job = JobBuilder.Create<HelloJob>()
.WithIdentity("job1", "jobGroup1")
.UsingJobData("name", "zhangsan")
.Build();
//在未来五分钟触发一次的触发器
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartAt(DateBuilder.FutureDate(5, IntervalUnit.Minute))
.EndAt(DateBuilder.DateOf(22, 0, 0))
.Build();
await scheduler.ScheduleJob(job, trigger);
Console.WriteLine($"当前时间:{trigger.StartTimeUtc.DateTime}");
Console.WriteLine($"第一次触发开始时间: {trigger.StartTimeUtc.DateTime}");
Console.WriteLine($"触发器失效时间: {trigger.EndTimeUtc?.DateTime}");
Console.WriteLine($"触发时执行的Job: {trigger.JobKey}");
return View();
}
}
[DisallowConcurrentExecution]
[PersistJobDataAfterExecution]
public class HelloJob : IJob
{
public string Name { private get; set; }
public async Task Execute(IJobExecutionContext context)
{
await Console.Out.WriteLineAsync($"This is HelloJob {DateTime.Now}");
}
}
}
执行结果:
2、触发器的优先级:
触发器优先级的默认值为 5
仅在触发器具有相同的触发时间时才比较优先级。计划在10:59触发的触发器将始终在计划在11:00触发的触发器之前触发。
优先级不做过多演示
版权声明
本文为[番茄大侠本尊]所创,转载请带上原文链接,感谢
https://blog.csdn.net/Tomato2313/article/details/109043973
边栏推荐
猜你喜欢
Redux概述
JS高频面试题
常用sql语句收藏
FOC single resistance sampling position loop control servo motor
VHDL finite state machine (FSM) code example
锚点定位——如何设置锚点居页面顶部距离,锚点定位并距离顶部一定偏移
el-table添加序号
Eigen 学习总结
微信小程序之 js 时间戳/1000 转换 秒,六个小时后,一天后,本周五 选项计算时间
Detailed explanation and application of PN junction and diode principle
随机推荐
POJ-The Unique MST
Shell脚本的通配符和特殊符号
Krypton binary
Set与Map
赛氪-二进制
【正河源刀具相关】
查漏补缺(一)
todesk远程控制软件的使用
汇编 32位无符号加法计算器
Using printf in MFC
JS实现私有属性
【无标题】js中的类型判断
excel里有文字的数字怎么从小到大排序,而不是首数字排序
VHDL finite state machine (FSM) code example
The difference between single quotation mark, double quotation mark and back quotation mark in shell script
Palindromic Primes
C语言代码规范
算数表达式
Vs can be compiled, but there will be a red underline to indicate the problem of undefined identifiers
特效案例收集:鼠标星球小尾巴