当前位置:网站首页>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
边栏推荐
- 文件操作《二》(5000字总结篇)
- [PROJECT] small hat takeout (8)
- [registration] tf54: engineer growth map and excellent R & D organization building
- 线性代数感悟之1
- Redis docker installation
- Shell-sed命令的使用
- VLAN高级技术,VLAN聚合,超级Super VLAN ,Sub VLAN
- AIOT产业技术全景结构-数字化架构设计(8)
- 基于51单片机红外无线通讯仿真
- ASP. Net core reads the configuration file in the class library project
猜你喜欢

VLAN高级技术,VLAN聚合,超级Super VLAN ,Sub VLAN

Milvus 2.0 détails du système d'assurance de la qualité

Nifi fast installation and file synchronization

groutine

2. Electron's HelloWorld

自定义my_strcpy与库strcpy【模拟实现字符串相关函数】
![[PROJECT] small hat takeout (8)](/img/54/0187eeb637f4dcd4ad3969b00e2b77.png)
[PROJECT] small hat takeout (8)

Get the column name list of the table quickly in Oracle

Smart doc + Torna generate interface document

Clickhouse table engine
随机推荐
Change the password after installing MySQL in Linux
Solution architect's small bag - 5 types of architecture diagrams
Baidu Map Case - modify map style
How to implement distributed locks with redis?
Grpc gateway based on Ocelot
First knowledge of go language
1-3 components and modules
Feign report 400 processing
基于51单片机红外无线通讯仿真
Quick install mongodb
MySQL master-slave configuration under CentOS
ClickHouse-表引擎
Shell脚本——Shell编程规范及变量
Path environment variable
Detailed explanation of the penetration of network security in the shooting range
Self use learning notes - connectingstring configuration
JSON deserialize anonymous array / object
2.Electron之HelloWorld
BUG_ me
MySQL modify master database