Quartz.NET 任务调度框架的demo实例
1、新建项目
简单实例,新建一个控制台程序
2、Nuget安装Quartz
3、编写代码
using Quartz;
using Quartz.Impl;
using Quartz.Logging;
using System;
using System.IO;
using System.Threading.Tasks;
namespace QuartzDotNetDemo
{
class Program
{
static async Task Main(string[] args)
{
LogProvider.SetCurrentLogProvider(new ConsoleLogProvider());
// 获取调度程序的实例
// 创建调度器工厂
StdSchedulerFactory factory = new StdSchedulerFactory();
// 创建调度器
IScheduler scheduler = await factory.GetScheduler();
// 启动
await scheduler.Start();
// 创建一个任务
IJobDetail job = JobBuilder.Create<HelloJob>().WithIdentity("job1", "group1").Build();
// 创建一个触发器
ITrigger trigger = TriggerBuilder.Create().WithIdentity("trigger1", "group1").StartNow().WithSimpleSchedule(x => x.WithIntervalInSeconds(10) // 间隔10秒执行一次
.RepeatForever()).Build();
// 将任务与出发器添加到调度器中
await scheduler.ScheduleJob(job, trigger);
// 延迟60秒后启动
await Task.Delay(TimeSpan.FromSeconds(60));
// 关闭
await scheduler.Shutdown();
Console.WriteLine("Press any key to close the application");
Console.ReadKey();
}
}
/// <summary>
/// 增加日志记录
/// </summary>
public class ConsoleLogProvider: ILogProvider
{
public Logger GetLogger(string name)
{
return(level, func, exception, parameters) =>
{
if(level >= LogLevel.Info && func != null)
{
Console.WriteLine("[" + DateTime.Now.ToLongTimeString() + "] [" + level + "] " + func(), parameters);
}
return true;
};
}
public IDisposable OpenMappedContext(string key, object value, bool destructure = false)
{
throw new NotImplementedException();
}
public IDisposable OpenNestedContext(string message)
{
throw new NotImplementedException();
}
}
/// <summary>
/// 简单的测试
/// </summary>
public class HelloJob: IJob
{
public async Task Execute(IJobExecutionContext context)
{
// 输出对控制台的问候
await Console.Out.WriteLineAsync("Greetings from HelloJob!");
}
}
}
4、执行效果
5、相关链接
一个简单的实例,如有帮助,欢迎点赞关注收藏!
本文来自博客园,作者:GoodTimeGGB,转载请注明原文链接:https://www.cnblogs.com/goodtimeggb/p/17046228.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?