C#中Quartz的使用

  • 安装 NuGet 包:在 Visual Studio 中打开项目,右键单击项目名称,选择“管理 NuGet 包”,搜索“Quartz”并安装。

  • 创建作业:创建一个实现了 IJob 接口的类,该接口包含一个 Execute 方法,该方法将在作业运行时调用。例如:

    public class MyJob : IJob
    {
        public Task Execute(IJobExecutionContext context)
        {
            Console.WriteLine("Hello, world!");
            return Task.CompletedTask;
        }
    }
  • 给Job传递数据:

    // 创建一个JobDataMap对象
    JobDataMap jobDataMap = new JobDataMap();
    
    // 向JobDataMap中添加参数
    jobDataMap.Add("param1", "Hello");
    jobDataMap.Add("param2", "World");
    
    // 创建一个JobDetail对象,设置JobDataMap
    JobDetail jobDetail = JobBuilder.Create<MyJob>()
        .UsingJobData(jobDataMap)
        .Build();
    
    // 在Job类中获取参数
    public class MyJob : IJob
    {
        public void Execute(IJobExecutionContext context)
        {
            JobDataMap jobDataMap = context.JobDetail.JobDataMap;
            string param1 = jobDataMap.GetString("param1");
            string param2 = jobDataMap.GetString("param2");
    
            Console.WriteLine("{0} {1}", param1, param2);
        }
    }

    注意:每次执行job时,都会创建一个新的job对象,并将JobDataMap中的数据传递给它。这意味着,即使您在job中存储了一些状态或数据,它们也不会在下一次执行job时保留。

  • 创建触发器:创建一个触发器来指定何时运行作业。例如,以下触发器将在每天上午 10 点运行作业:

 

ITrigger trigger = TriggerBuilder.Create()
    .WithIdentity("trigger1", "group1")
    .WithDailyTimeIntervalSchedule(
        x => x.OnEveryDay()
              .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(10, 0))
    )
    .Build();

    也可以不使用WithDailyTimeIntervalSchedule,使用WithCronSchedule,例如:下面是每天9点触发

.WithCronSchedule(cron) //"0 0 9 * * ?"

 

 

     这个表达式的含义是:

 

    • 第一字段:0,表示秒数为0。
    • 第二字段:0,表示分钟数为0。
    • 第三字段:14,表示小时数为14,即下午2点。
    • 第四字段:*,表示每天都匹配。
    • 第五字段:*,表示每月都匹配。
    • 第六字段:?,表示不指定星期几。
    • 第七字段:未使用。
  • 创建调度器:使用 StdSchedulerFactory 创建调度器,并将作业和触发器添加到调度器中:

ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
IScheduler scheduler = await schedulerFactory.GetScheduler();
IJobDetail job = JobBuilder.Create<MyJob>()
    .WithIdentity("job1", "group1")
    .Build();

await scheduler.ScheduleJob(job, trigger);

 

  • 运行作业:调用 Start 方法启动调度器,使作业按照指定的触发器运行:

    await scheduler.Start();

    注意:这里只是启动调度器,并不会立刻执行作业,需要触发器触发才会执行。

 

原文链接:https://www.cnblogs.com/log9527blog/archive/2023/04/14/17318118.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中Quartz的使用 - Python技术站

(0)
上一篇 2023年4月17日
下一篇 2023年4月17日

相关文章

  • C# ComboBox的联动操作(三层架构)

    完整攻略 首先,针对C# ComboBox的联动操作,我们需要使用三层架构的思想进行设计。 三层架构分别为: 表现层(Presentation Layer):用户界面(界面层)。 业务逻辑层(Business Logic Layer):负责业务逻辑的处理。 数据访问层(Data Access Layer):与数据存储的交互。 接下来,我们按照以下步骤进行: …

    C# 2023年6月1日
    00
  • C# 使用 Castle 实现 AOP及如何用 Autofac 集成 Castle

    一、什么是AOP AOP(Aspect Oriented Programming,面向切面编程)是一种编程思想,是对OOP(Object Oriented Programming,面向对象编程)的补充和完善。它将程序中的关注点分为核心关注点和横切关注点,其中核心关注点指的是程序核心业务逻辑,横切关注点指的是与核心业务逻辑无关的代码,例如日志、事务、缓存等等。…

    C# 2023年5月15日
    00
  • 在Asp.net core项目中使用WebSocket

    在 ASP.NET Core 项目中使用 WebSocket 的完整攻略 WebSocket 是一种在 Web 应用程序中实现实时通信的协议。在 ASP.NET Core 项目中使用 WebSocket 可以实现实时信的功能。下面是详细的攻略: 步骤1:创建 ASP.NET Core 项目 在 Visual Studio 中创建一个名为“WebSocketD…

    C# 2023年5月12日
    00
  • C#特性-对象集合初始化器介绍

    C#特性-对象集合初始化器是一种简化代码编写的特性,可以快速且易于阅读地创建和初始化对象和集合。下面我们来详细讲解它的使用方法: 1. 对象初始化器 在使用对象初始化器的时候,可以直接在创建对象的同时,对其字段和属性进行赋值。下面是一个示例: public class Person { public string Name { get; set; } pub…

    C# 2023年6月1日
    00
  • ASP.NET MVC前台动态添加文本框并在后台使用FormCollection接收值

    下面是“ASP.NET MVC前台动态添加文本框并在后台使用FormCollection接收值”的完整使用攻略,包括创建视图、创建控制器和两个示例。 步骤1:创建 ASP MVC 项目 在 Visual Studio 中创建名为“DynamicTextBoxDemo”的 ASP.NET MVC 项目。 步骤2:创建视图 在 Views 文件夹中创建为“Ind…

    C# 2023年5月12日
    00
  • C#四舍五入用法实例

    C#四舍五入用法实例攻略 本文将详细讲解C#中四舍五入的使用方法及应用场景。 四舍五入的用途 在实际开发中,我们需要处理浮点数,但是由于计算机的机器精度限制,运算中可能会产生精度误差。因此需要对浮点数进行四舍五入运算,以保证结果的精度。 Math.Round的用法 在C#中,我们可以使用Math.Round方法进行四舍五入运算。其语法如下: public s…

    C# 2023年6月7日
    00
  • C#集合本质之堆栈的用法详解

    C#集合本质之堆栈的用法详解 什么是堆栈(Stack)? 堆栈是一种特殊的数据结构,它的特点是后进先出(Last In First Out, LIFO)。堆栈通常是通过数组或链表实现的,操作系统在进程调度、函数调用、表达式求值等方面广泛应用了堆栈。 C#堆栈的实现 C#中实现堆栈的数据结构有两种,一种是System.Collections.Stack类,另一…

    C# 2023年6月7日
    00
  • C# WPF调用QT窗口的方法

    C# WPF调用QT窗口的方法 在开发中,有时我们需要使用C# WPF调用QT窗口,可以通过以下方法实现。 1. 安装QT开发工具并创建QT窗口 首先需要下载并安装QT开发工具,然后创建一个QT窗口,在窗口中添加需要的控件和逻辑代码,最后编译并生成QT窗口的可执行文件(exe文件)。 确保QT窗口的可执行文件能够正常运行,无误后进行下一步操作。 2. 编写C…

    C# 2023年6月7日
    00
合作推广
合作推广
分享本页
返回顶部