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实例的介绍,做此记录,如有帮助,欢迎点赞关注收藏!

目录
相关文章
|
8天前
|
消息中间件 开发框架 监控
NET任务调度框架Hangfire使用指南
Hangfire 是一个用于 .NET 应用程序的开源任务调度框架,支持长时间运行任务、定时任务等。通过简单的安装配置,即可将任务从主线程分离,提升应用性能。支持多种数据库,提供丰富的任务类型如立即执行、延迟执行和周期性任务,并有可视化管理界面 Hangfire Dashboard。还支持安全性配置及扩展插件,如 Hangfire.HttpJob,适合各种复杂场景下的任务调度需求。
30 1
NET任务调度框架Hangfire使用指南
|
27天前
|
开发框架 安全 .NET
在数字化时代,.NET 技术凭借跨平台兼容性、丰富的开发工具和框架、高效的性能及强大的安全稳定性,成为软件开发的重要支柱
在数字化时代,.NET 技术凭借跨平台兼容性、丰富的开发工具和框架、高效的性能及强大的安全稳定性,成为软件开发的重要支柱。它不仅加速了应用开发进程,提升了开发质量和可靠性,还促进了创新和业务发展,培养了专业人才和技术社区,为软件开发和数字化转型做出了重要贡献。
24 5
|
27天前
|
传感器 人工智能 供应链
.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。
本文深入探讨了.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。通过企业级应用、Web应用及移动应用的创新案例,展示了.NET在各领域的广泛应用和巨大潜力。展望未来,.NET将与新兴技术深度融合,拓展跨平台开发,推动云原生应用发展,持续创新。
28 4
|
27天前
|
开发框架 .NET C#
.NET 技术凭借高效开发环境、强大框架支持及跨平台特性,在软件开发中占据重要地位
.NET 技术凭借高效开发环境、强大框架支持及跨平台特性,在软件开发中占据重要地位。从企业应用到电子商务,再到移动开发,.NET 均展现出卓越性能,助力开发者提升效率与项目质量,推动行业持续发展。
27 4
|
3月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
46 7
|
3月前
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
74 0
|
4月前
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
55 0
|
4月前
|
开发框架 前端开发 安全
ASP.NET MVC 如何使用 Form Authentication?
ASP.NET MVC 如何使用 Form Authentication?
|
4月前
|
开发框架 .NET
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
142 0
|
7月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
211 0