Quartz .Net 的简单使用

参考了:c# .net framework 4.5.2 , Quartz.NET 3.0.7 - runliuv - 博客园 (cnblogs.com)

https://www.cnblogs.com/personblog/p/11277527.html

Quartz.NET 作业调度(一):Test - 简书

自己要轮询的任务:

cs 复制代码
using log4net;
using Quartz;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Web;


namespace WzsrmyyApi.QuartzTask
{
    [DisallowConcurrentExecution]
    public class ReportJob : IJob
    {

        public Task Execute(IJobExecutionContext context)
        {

            return Task.Run(() =>
            {

                foo();

            });

        }

        public static readonly ILog logger = LogManager.GetLogger("SendMsgJob");
        public void foo()
        {
            BigDataSupervisionBll bll = new BigDataSupervisionBll();
            BigDataSupervisionOtherBll otherBll = new BigDataSupervisionOtherBll();
            try
            {
                var dic = bll.SplitCount(otherBll.GetChargesRecordOneDay());
                int dictNum = 0; string type = "charges_record";
                for (int i = dictNum; i < dic.Count; i++)
                {
                    string data = dic[dictNum];
                    var res = bll.PostData(type, data);

                    logger.Info("日志");
                }
            }
            catch (Exception ex)
            {
                //日志
                logger.Info("error " + ex);
            }

        }


    }
}

轮询的任务的建立

cs 复制代码
using Quartz;
using Quartz.Impl;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace WzsrmyyApi.QuartzTask
{
    public class ReportJobScheduler
    {
        public static async void Start()
        {
            try
            {
                string thisJob = "ReportJob";

                string groupName = "gp" + thisJob;
                string jobName = "job" + thisJob;
                string triggerName = "trigger" + thisJob;

                // 创建作业调度池
                ISchedulerFactory factory = new StdSchedulerFactory();
                IScheduler scheduler = await factory.GetScheduler();

                // 创建作业
                IJobDetail job = JobBuilder.Create<ReportJob>()
                  .WithIdentity(jobName, groupName)
                  .Build();

                // 创建触发器,
                ITrigger trigger = TriggerBuilder.Create()
                  .WithIdentity(triggerName, groupName)
                  .StartNow()
                  .WithCronSchedule("0 0 22 ? * * ")//每天晚上十点
                  .Build();
                //.WithSimpleSchedule(x => x.WithIntervalInSeconds(10).RepeatForever()//每10s执行一次

                // 加入到作业调度池中
                await scheduler.ScheduleJob(job, trigger);

                // 开始运行
                await scheduler.Start();
            }
            catch (Exception ex)
            {
                //日志
            }

        }

    }
}

最后在程序启动的时候进行注册:

cs 复制代码
protected void Application_Start()
        {
            log4net.Config.XmlConfigurator.Configure();//系统日志配置

            QuartzTask.ReportJobScheduler.Start();//

            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }

以上就是简单的代码使用 。Quartz.net的使用可以通过两种方式调用:一是通过代码的方式,而是通过配置文件的方式;

详细些的可以参考:Quartz.Net详解-CSDN博客

相关推荐
csdn_aspnet14 小时前
C# .NET Core 源代码生成器(dotnet source generators)
c#·.netcore
时光追逐者15 小时前
C#/.NET/.NET Core技术前沿周刊 | 第 42 期(2025年6.9-6.15)
c#·.net·.netcore
z2014z21 小时前
第3章 C#编程概述 笔记
笔记·c#
葡萄城技术团队1 天前
基于 C# 和 .NET 的 Spread.NET 数据处理实战
c#
ou.cs1 天前
wpf 解决DataGridTemplateColumn中width绑定失效问题
c#·wpf
追逐时光者1 天前
C#/.NET/.NET Core技术前沿周刊 | 第 42 期(2025年6.9-6.15)
后端·.net
程序猿小D1 天前
第27节 Node.js Buffer
linux·开发语言·vscode·node.js·c#·编辑器·vim
王子文-上海1 天前
大数据实时风控引擎:Spark Streaming、Kafka、Flink与Doris的融合实践
c#·linq
csdn_aspnet2 天前
使用 C# 源生成器(Source Generators)进行高效开发:增强 Blazor 及其他功能
c#·.netcore
小码编匠2 天前
C# + OpenCvSharp 轮廓检测详解
后端·c#·.net