首页 > 其他分享 >.net Code 定时任务

.net Code 定时任务

时间:2023-04-24 15:24:34浏览次数:28  
标签:Quartz 创建 public Task Trigger Scheduler net Code 定时

在 .NET Core 中,我们可以使用 Quartz.NET 来实现定时任务。下面是一个简单的例子:

首先,我们需要通过 NuGet 安装 Quartz.NET:
Install-Package Quartz

1.创建一个 Job 类,该类实现 IJob 接口,并实现 Execute 方法。该方法中编写具体的任务逻辑。

using Quartz;

public class MyJob : IJob
{
  public Task Execute(IJobExecutionContext context)
  {
    // 具体的任务逻辑
    Console.WriteLine("Hello, world!");

    return Task.CompletedTask;
  }
}

2.创建一个 Trigger,该 Trigger 规定了任务的触发方式。例如,我们可以创建一个每分钟执行一次的 Trigger:

using Quartz;

public class MyTrigger
{
  public static ITrigger Create()
  {
    return TriggerBuilder.Create()
    .WithIdentity("MyTrigger", "MyGroup")
    .StartNow()
    .WithSimpleSchedule(x => x
    .WithIntervalInSeconds(60)
    .RepeatForever())
    .Build();
  }
}

3.创建一个 Scheduler,该 Scheduler 负责管理所有的 Job 和 Trigger:

using Quartz;
using Quartz.Impl;

public class MyScheduler
{
  public static async Task Start()
  {
    // 创建 SchedulerFactory
    var schedulerFactory = new StdSchedulerFactory();

    // 创建 Scheduler
    var scheduler = await schedulerFactory.GetScheduler();

    // 创建 JobDetail
    var jobDetail = JobBuilder.Create<MyJob>()
    .WithIdentity("MyJob", "MyGroup")
    .Build();

    // 创建 Trigger
    var trigger = MyTrigger.Create();

    // 将 JobDetail 和 Trigger 绑定到 Scheduler
    await scheduler.ScheduleJob(jobDetail, trigger);

    // 启动 Scheduler
    await scheduler.Start();
  }
}

最后,在应用程序启动时调用 MyScheduler.Start 方法启动定时任务即可:
public class Program
{
  public static async Task Main(string[] args)
  {
    await MyScheduler.Start();

    // 防止应用程序退出
    await Task.Delay(-1);
  }
}

这样,我们就创建了一个每分钟执行一次的定时任务。可以根据需要修改 Trigger 中的参数来满足不同的需求。

标签:Quartz,创建,public,Task,Trigger,Scheduler,net,Code,定时
From: https://www.cnblogs.com/hedaniu/p/17349603.html

相关文章

  • .NET Web入门到高级路线(新版本)
    .NETWeb入门到高级路线C#基础语法.NETCore基础知识ASP.NETCore基础知识概述BlazorASP.NETCore官方文档ORMFreeSqlEntityFrameworkCoreDapperSqlSugar关系型数据库SQLServerMySQLPostgreSQL中间件MongoDBRedisRabbitMQActiveMQSkyWalkingC......
  • 如何通过C#/VB.NET代码将PowerPoint转换为HTML
    利用PowerPoint可以很方便的呈现多媒体信息,且信息形式多媒体化,表现力强。但难免在某些情况下我们会需要将PowerPoint转换为HTML格式。因为HTML文档能独立于各种操作系统平台(如Unix,Windows等)。并且它可以加入图片、声音、动画、影视等内容,还能从一个文件跳转到另一个文件,与世界各地......
  • Codeforces Beta Round 96 (Div. 1) -- C. Logo Turtle (dp,记忆化搜索)
    记忆化搜索就是暴力,多一步优化,走过的路别走了。说实话,可能是数据水了,居然能过。constintN=510;strings;intn,ans;boolst[501][501][2][50];voiddfs(intx,intidx,intdir,intk){ if(st[x][idx][dir][k])return; st[x][idx][dir][k]=1;//走过的路不走......
  • NETAPP fans270c巡检命令
    1.查看环境信息   SXTY-PS-MMSC1-STORAGE-1A>environmentstatus2.查看系统信息详情 SXTY-PS-MMSC1-STORAGE-1A>sysconfig-a SXTY-PS-MMSC1-STORAGE-1A>sysconfig-A3.查看磁盘owner信息 SXTY-PS-MMSC1-STORAGE-1A>diskshow-v4.查看raid组详情 SXTY-PS-MM......
  • kubernetes集群的高可用架构
    概述kubernete在云平台的高可用分为两种情形单az的高可用集群搭建多az的高可用集群搭建这两种情形其实就是一个k8s集群内部的高可用,只是多az的场景下能够实现更高级别的高可用,此时k8s需要跨az部署集群。集群内部的高可用需要实现基础组件的高可用,其中最重要的就是etcd和api......
  • AtCoder Problem Difficulty
    ABC299之前.......
  • SQL执行定时任务JOB,包教包会
    什么是JOB?数据库中可以定时执行任务的功能组件,那就是JOB。 JOB的作用它可以按我们设置好的参数定时执行查询语句或存储过程,特别适合一些每天,每周,每月,每年这种需要循环执行任务的场景,当然每秒也是可以的! 如何创建JOB在SQLServer中有图像化的界面方便我们创建JOB,下面我带......
  • .NET Core 依赖注入
    在.NETCore中,依赖注入(DependencyInjection,简称DI)是框架的一个重要特性,可以帮助我们解耦代码、管理对象生命周期以及提高可测试性等.一下是.NETCore中依赖注入的一些基本概念和用法:1、服务(Service):在DI中,服务即一个对象或者类型。用于完成特定的功能.例如,数据库访问、......
  • OpenAI的离线音频转文本模型 Whisper 的.NET封装项目
    whisper介绍OpenAI在2022年9月21日开源了号称其英文语音辨识能力已达到人类水准的Whisper神经网络,且它亦支持其它98种语言的自动语音辨识。Whisper系统所提供的自动语音辨识(AutomaticSpeechRecognition,ASR)模型是被训练来运行语音辨识与翻译任务的,它们能将各种语言的语音变成文......
  • 关于在visual Studio 2022中无法找到 ASP.NET Core Web Application 或 ASP.NET Core
    在学习ASP.NETCoreWebApplication时发现无论如何都无法找到这个模板,在翻遍论坛后都没有看到解决的方法,在我下载 visualStudio2017中终于找到了但是,你会发现他只能选择.netcore2.0这肯定是不符合我们写代码的,因为他太老了,但在2022中确实找不到    这......