当前位置:网站首页>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
边栏推荐
- Nacos + aspnetcore + Ocelot actual combat code
- Detailed explanation of C webpai route
- C语言函数详解
- On lambda powertools typescript
- MySQL master-slave configuration under CentOS
- ASP. Net core dependency injection service life cycle
- PostgreSQL列存与行存
- Clickhouse SQL operation
- Promise (III)
- Further optimize Baidu map data visualization
猜你喜欢

Signalr can actively send data from the server to the client

ASP. Net core JWT certification

. net cross platform principle (Part I)

基于51单片机红外无线通讯仿真

Devexpress GridView add select all columns

Document operation II (5000 word summary)

ASP. Net core dependency injection service life cycle

oracle 中快速获取表的列名列表

Change the password after installing MySQL in Linux

Node access to Alipay open platform sandbox to achieve payment function
随机推荐
Use of Shell sort command
PHP efficiently reads large files and processes data
手写事件发布订阅框架
Calculation formula related to tolerance analysis
STM32__ 03 - beginner timer
Generation of barcode and QR code
ClickHouse-SQL 操作
How vscode compares the similarities and differences between two files
ASP. Net core configuration options (Part 1)
Customize my_ Strcpy and library strcpy [analog implementation of string related functions]
Use between nodejs modules
_ Mold_ Board_
Kingdee Cloud Star API calling practice
C语言函数详解
org. apache. parquet. schema. InvalidSchemaException: A group type can not be empty. Parquet does not su
Preliminary understanding of promse
SPC introduction
1-4 configuration executable script of nodejs installation
Shell-sed命令的使用
RTKLIB 2.4.3源码笔记