.netcore使用quartz定时任务(代码片段)

DinAction DinAction     2023-04-28     508

关键词:

这是一个使用 .NET Core 和 Quartz.NET 实现定时任务的完整示例。首先确保已经安装了 .NET Core SDK。接下来按照以下步骤创建一个新的控制台应用程序并设置定时任务:

  1. 创建一个新的 .NET Core 控制台应用程序:

    dotnet new console -n QuartzDemo
    cd QuartzDemo
    
  2. 通过 NuGet 添加 Quartz.NET 包:

    dotnet add package Quartz --version 3.3.3
    
  3. 打开 Program.cs 文件并替换其内容:

    using System;
    using System.Threading.Tasks;
    using Quartz;
    using Quartz.Impl;
    
    namespace QuartzDemo
    
        public class HelloWorldJob : IJob
        
            public Task Execute(IJobExecutionContext context)
            
                Console.WriteLine("Hello, world! " + DateTime.Now);
                
    			return Task.CompletedTask;
               
           
      class Program
       
           static async Task Main(string[] args)
           
               // 创建调度器
               StdSchedulerFactory factory = new StdSchedulerFactory();
               IScheduler scheduler = await factory.GetScheduler();
    
               // 启动调度器
               await scheduler.Start();
    
               // 创建一个作业
               IJobDetail job = JobBuilder.Create<HelloWorldJob>()
                   .WithIdentity("helloWorldJob", "group1")
                   .Build();
    
               // 创建一个触发器
               ITrigger trigger = TriggerBuilder.Create()
               .WithIdentity("helloWorldTrigger", "group1")
                       .StartNow()
                       .WithSimpleSchedule(x => x
                           .WithIntervalInSeconds(5)
                           .RepeatForever())
                       .Build();
               // 将作业和触发器添加到调度器
               await scheduler.ScheduleJob(job, trigger);
    
               // 等待用户按键以关闭
               Console.WriteLine("Press any key to close the application...");
               Console.ReadKey();
    
               // 关闭调度器
               await scheduler.Shutdown();
           
       
    
              
    

    该示例创建了一个名为 HelloWorldJob 的作业,每隔 5 秒执行一次。作业的内容仅输出当前时间的 Hello, world! 消息。

  4. 运行应用程序:

    dotnet run

  5. 在控制台中,你将看到每隔 5 秒输出一次 "Hello, world!" 以及当前时间。

通过以上步骤,你已成功创建了一个使用 .NET Core 和 Quartz.NET 实现的定时任务示例。你可以根据需求自定义作业和触发器,实现更复杂的定时任务。

hostedservices+quartz实现定时任务调度(代码片段)

背景之前.netcore使用quartz.net时,总感觉非常变扭,百度和谷歌了N久都没解决以下问题,造成代码丑陋,非常不优雅:1.项目启动时,要立刻恢复执行quartz.net中的任务2.quartz.net中的Job任务无法使用ioc注入,要额外写一套直到最近... 查看详情

深入quartz,更优雅地管理你的定时任务(代码片段)

目录初识QuartzQuartz基础使用基于时间间隔的定时任务基于Cron表达式的定时任务Quartz解读JobTriggerSchedulerQuartz进阶使用多触发器的定时任务Job中注入BeanQuartz的持久化最近在工作遇到了定时任务场景,因此特地对定时任务相关知... 查看详情

深入quartz,更优雅地管理你的定时任务(代码片段)

目录初识QuartzQuartz基础使用基于时间间隔的定时任务基于Cron表达式的定时任务Quartz解读JobTriggerSchedulerQuartz进阶使用多触发器的定时任务Job中注入BeanQuartz的持久化最近在工作遇到了定时任务场景,因此特地对定时任务相关知... 查看详情

使用quartz框架集成spring,动态配置定时任务(个人思考)(代码片段)

...有很多种下面先来简单列举一下可实现这个需求的技术。使用Spring为我们提供的@Scheduled注解可以生成定时任务,只要我反射学的足够NB,动态的修改定时任务的参数也不是什么难事(自己造轮子、不推荐 查看详情

使用quartz框架集成spring,动态配置定时任务(个人思考)(代码片段)

...有很多种下面先来简单列举一下可实现这个需求的技术。使用Spring为我们提供的@Scheduled注解可以生成定时任务,只要我反射学的足够NB,动态的修改定时任务的参数也不是什么难事(自己造轮子、不推荐 查看详情

quartz-定时任务框架(代码片段)

Quartz的使用Quartz是OpenSymphony开源组织在Jobscheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java... 查看详情

jfinal定时任务插件jfinal-quartz(代码片段)

这个定时任务插件精确的时间可以到秒,使用方面跟jfinal-scheduler插件的使用方式差不多Dreampie/jfinal-quartzhttps://github.com/Dreampie/jfinal-quartz/blob/master/pom.xmlQuartz学习——Quartz大致介绍(一)https://blog.csdn.net/u010648555/article/details/... 查看详情

quartz定时任务(代码片段)

1.结构2.执行业务的代码:  packagecom.bst.express;importjava.text.SimpleDateFormat;importjava.util.Date;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXml 查看详情

定时任务框架-quartz(代码片段)

依赖 <!--定时任务jar--><dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.1.7</version></dependency>  查看详情

quartz定时任务框架使用教程详解(代码片段)

Quartz定时任务框架学习什么是QuartzQuartz依赖引入使用QuartzQuartzAPI,Jobs和TriggersJob和Trigger为什么既有Job,又有Trigger呢?KeyJob与JobDetail介绍为什么设计成JobDetail+Job,不直接使用JobJobDataMapJob实例Job状态与并发Job的... 查看详情

一文揭秘定时任务调度框架quartz(代码片段)

...,希望能帮助到一些人或者减少人们探索的时间。注意,使用版本为quartz2.2.3 springboot2.1.31.quartz的核心组件 1.1Job组件1.1.1JobJob负责任务执行的逻辑,所有逻辑在execute()方法中,执行所需要的数据存放在JobExecutionContext中Job... 查看详情

一个简单的quartz定时任务(代码片段)

packagecom.shuadan.quartz;importorg.springframework.scheduling.annotation.Scheduled;importorg.springframework.stereotype.Component;@ComponentpublicclassGlodQuartz/***每隔2秒执行*/@Scheduled(cron="*/2****? 查看详情

分布式定时任务调度框架quartz学习与实战记录完整篇(代码片段)

...项目,它可以与J2EE和J2SE应用程序相结合也可以单独使用。Quartz是开源且具有丰富特性的任务调度库,能够集成任何的Java 查看详情

分布式定时任务调度框架quartz学习与实战记录完整篇(代码片段)

...项目,它可以与J2EE和J2SE应用程序相结合也可以单独使用。Quartz是开源且具有丰富特性的任务调度库,能够集成任何的Java 查看详情

石英定时任务-quartz(代码片段)

<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:p="http://www.springframework.o 查看详情

spring定时任务之quartz(代码片段)

Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz,下面就看看在Spring中怎样配置Quartz:首先我们来写一个被调度的类:packagecom.taozi.quartz;publicclassQuartzJobpublicvoidexecute()System.out.println("Quart 查看详情

springboot整合quartz实现动态的创建或删除定时任务并将定时调度任务持久化到mysql以及quartz集群配置(代码片段)

...rg/quartz/impl/jdbcjobstore可以找到对应数据库的SQL脚本我这里使用的是MySQL数据库,SQL脚本如下:CREATE 查看详情

springboot整合quartz实现动态的创建或删除定时任务并将定时调度任务持久化到mysql以及quartz集群配置(代码片段)

...rg/quartz/impl/jdbcjobstore可以找到对应数据库的SQL脚本我这里使用的是MySQL数据库,SQL脚本如下:CREATE 查看详情