当前位置:网站首页>Using quartz under. Net core -- a simple trigger of [7] operation and trigger
Using quartz under. Net core -- a simple trigger of [7] operation and trigger
2022-04-23 17:11:00 【Tomato Warrior】
1、 Set up triggers for a specific time , Don't repeat
// Execute once at a certain point in time , No repetition
ISimpleTrigger trigger = (ISimpleTrigger)TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartAt(DateTime.Parse("2020-10-27 15:41"))
.Build();
2、 every other 3 Second trigger once , Repeat three times ( Trigger 4 Time )
// every other 3 Second trigger once , Repeat three times
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger3", "group1")
.StartAt(DateTime.Parse("2020-10-27 15:48")) // If you don't write the start time , Will start at the current time
.WithSimpleSchedule(x => x
.WithIntervalInSeconds(3)
.WithRepeatCount(3)) // Written 3 Time , But it triggers 4 Time ( Count the first time )
.Build();
3、 some time 5 Second trigger once
// some time 5 Second trigger once
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger5", "group1")
.StartAt(DateBuilder.FutureDate(5, IntervalUnit.Second))
.Build();
4、 Every time 5s Do it once , until 22 spot
// Every time 5s Do it once , until 22 spot
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger7", "group1")
.WithSimpleSchedule(x => x
.WithIntervalInSeconds(5)
.RepeatForever())
.EndAt(DateBuilder.DateOf(22, 0, 0))
.Build();
5、 Start with the head in the next minute , Every time 5 Once per second
// Start with the head in the next minute , Every time 5 Once per second
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger8")
.StartAt(DateBuilder.EvenMinuteDate(null))
.WithSimpleSchedule(x => x
.WithIntervalInSeconds(5)
.RepeatForever())
.Build();
Complete code :
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
// Register scheduler factory
services.AddSingleton<ISchedulerFactory>(new StdSchedulerFactory());
}
HomeController.cs
using Microsoft.AspNetCore.Mvc;
using Quartz;
using Quartz.Impl.Calendar;
using System;
using System.Threading.Tasks;
namespace QuartzLearn.Controllers
{
public class HomeController : Controller
{
// Dispatcher factory
private readonly ISchedulerFactory _schedulerFactory;
// Constructor injection
public HomeController(ISchedulerFactory schedulerFactory)
{
// Injection scheduler factory
_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();
// Execute once at a certain point in time , No repetition
//ISimpleTrigger trigger = (ISimpleTrigger)TriggerBuilder.Create()
// .WithIdentity("trigger1", "group1")
// .StartAt(DateTime.Parse("2020-10-27 15:41"))
// .Build();
// every other 3 Second trigger once , Repeat three times
//ITrigger trigger = TriggerBuilder.Create()
// .WithIdentity("trigger3", "group1")
// .StartAt(DateTime.Parse("2020-10-27 15:48")) // If you don't write the start time , Will start at the current time
// .WithSimpleSchedule(x => x
// .WithIntervalInSeconds(3)
// .WithRepeatCount(3)) // Written 3 Time , But it triggers 4 Time ( Count the first time )
// .Build();
// some time 5 Second trigger once
//ITrigger trigger = TriggerBuilder.Create()
// .WithIdentity("trigger5", "group1")
// .StartAt(DateBuilder.FutureDate(5, IntervalUnit.Second))
// .Build();
// Every time 5s Do it once , until 22 spot
//ITrigger trigger = TriggerBuilder.Create()
// .WithIdentity("trigger7", "group1")
// .WithSimpleSchedule(x => x
// .WithIntervalInSeconds(5)
// .RepeatForever())
// .EndAt(DateBuilder.DateOf(22, 0, 0))
// .Build();
// Start with the head in the next minute , Every time 5 Once per second
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger8")
.StartAt(DateBuilder.EvenMinuteDate(null))
.WithSimpleSchedule(x => x
.WithIntervalInSeconds(5)
.RepeatForever())
.Build();
await scheduler.ScheduleJob(job, trigger);
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}");
}
}
}
版权声明
本文为[Tomato Warrior]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204230553457692.html
边栏推荐
- Milvus 2.0 质量保障系统详解
- BUG_ me
- org. apache. parquet. schema. InvalidSchemaException: A group type can not be empty. Parquet does not su
- 2. Electron's HelloWorld
- Your brain expands and shrinks over time — these charts show how
- 基于51单片机红外无线通讯仿真
- 【题解】[SHOI2012] 随机树
- . net type transfer
- [logical fallacy in life] Scarecrow fallacy and inability to refute are not proof
- Signalr can actively send data from the server to the client
猜你喜欢
Lock lock
Milvus 2.0 質量保障系統詳解
How vscode compares the similarities and differences between two files
【生活中的逻辑谬误】稻草人谬误和无力反驳不算证明
C语言函数详解
oracle 中快速获取表的列名列表
CentOS MySQL multi instance deployment
Get the column name list of the table quickly in Oracle
Devexpress GridView add select all columns
自定义my_strcpy与库strcpy【模拟实现字符串相关函数】
随机推荐
Your brain expands and shrinks over time — these charts show how
JS to find the character that appears three times in the string
Installing labellmg tutorial in Windows
[registration] tf54: engineer growth map and excellent R & D organization building
[C] thoroughly understand the deep copy
1-2 characteristics of nodejs
New keyword learning and summary
Milvus 2.0 détails du système d'assurance de la qualité
自定义my_strcpy与库strcpy【模拟实现字符串相关函数】
Devexpress GridView add select all columns
Some problems encountered in recent programming 2021 / 9 / 8
Scope and scope chain in JS
Read a blog, re understand closures and tidy up
RTKLIB 2.4.3源码笔记
Feign report 400 processing
PHP efficiently reads large files and processes data
2.Electron之HelloWorld
Further study of data visualization
Shell-awk命令的使用
Variable length parameter__ VA_ ARGS__ Macro definitions for and logging