Quartz.NET 任务调度框架的demo实例

简介: ​# 1、新建项目简单实例,新建一个控制台程序# 2、Nuget安装Quartz![请在此添加图片描述](https://developer-private-1258344699.cos.ap-guangzhou.myqcloud.com/column/article/5877188/20231031-52d48c93.png?x-cos-security-token=baeOYKJ0BOuKXaDG6L8qKX7pdH823CLa740df95695ddd90763a204f7cd7172afjLbyfjQS2rqYm0waz5Rlsx3p2jhWg-yj9JZ3WKDq32bpX

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、相关链接

Quartz.Net官网文档

一个简单的实例,如有帮助,欢迎点赞关注收藏!

以上就是Quartz.NET 任务调度框架的demo实例的介绍,做此记录,如有帮助,欢迎点赞关注收藏!

目录
相关文章
|
27天前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
86 3
|
27天前
|
开发框架 前端开发 API
C#/.NET/.NET Core优秀项目和框架2024年9月简报
C#/.NET/.NET Core优秀项目和框架2024年9月简报
|
27天前
|
Linux C# Android开发
.NET开源跨平台桌面和移动应用的统一框架 - Eto.Forms
.NET开源跨平台桌面和移动应用的统一框架 - Eto.Forms
116 1
|
27天前
|
开发框架 JavaScript 前端开发
一个适用于 ASP.NET Core 的轻量级插件框架
一个适用于 ASP.NET Core 的轻量级插件框架
|
27天前
|
开发框架 缓存 前端开发
WaterCloud:一套基于.NET 8.0 + LayUI的快速开发框架,完全开源免费!
WaterCloud:一套基于.NET 8.0 + LayUI的快速开发框架,完全开源免费!
|
2月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
38 7
|
2月前
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
54 0
|
3月前
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
46 0
|
3月前
|
开发框架 前端开发 安全
ASP.NET MVC 如何使用 Form Authentication?
ASP.NET MVC 如何使用 Form Authentication?
|
3月前
|
开发框架 .NET
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
119 0
下一篇
无影云桌面