前言
#Visual Studio 版本
Microsoft Visual Studio Professional 2022 (64 位)
#Quartz.Net 版本
Quartz.Net 3.6.3
#C#语言版本 ( 别小看这个, 否则我下面的代码在你那里很可能跑不起来 )
10.0
安装Quartz.Net
我是直接通过Nuget包管理器安装的
其它安装方式, 也可以使用命令安装
Install-Package Quartz -Version 3.6.3
添加一个"IJob"的实现类
namespace Test.Job
{
internal class TestQuarztJob : IJob
{
public Task Execute(IJobExecutionContext context)
{
Console.WriteLine(DateTime.Now);
return Task.CompletedTask;
}
}
}
启动项
using Quartz.Impl;
using Quartz;
using Test.Job;
//这里是使用顶级域名( 注意C#预览版本 )
/*
需要配置语言版本 > 10.0
例如 : 我这里的配置是 "<LangVersion>10.0</LangVersion>"
*/
await MainAsync();
static async Task MainAsync()
{
var schedulerFactory = new StdSchedulerFactory();
var scheduler = await schedulerFactory.GetScheduler();
await scheduler.Start();
Console.WriteLine($"任务调度器已启动");
//创建作业和触发器
var jobDetail = JobBuilder.Create<TileQuarztJob>().Build();
var trigger = TriggerBuilder
.Create()
.WithCronSchedule("0/10 * * * * ?")
.Build();
//添加调度
await scheduler.ScheduleJob(jobDetail, trigger);
#region 我这里也遇到坑了...
//不加这句代码"Console.ReadKey();", 会直接退出进程
/*
E:\Code\Test.Job\bin\Debug\net7.0\Test.Job.exe (进程 11124121918000000)已退出,代码为 0。
要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
按任意键关闭此窗口. . .
*/
Console.ReadKey();
#endregion
await scheduler.Shutdown();
}
问题1.启动相关问题
using Quartz.Impl;
using Quartz;
namespace Test
{
internal class Program
{
static void Main(string[] args)
{
//如何启动???
}
static async Task MainAsync()
{
var schedulerFactory = new StdSchedulerFactory();
var scheduler = schedulerFactory.GetScheduler().Result;
await scheduler.Start();
Console.WriteLine($"任务调度器已启动");
//创建作业和触发器
var jobDetail = JobBuilder.Create<TileQuarztJob>().Build();
var trigger = TriggerBuilder
.Create()
.WithCronSchedule("0 0/1 * * * ?")
.Build();
//添加调度
await scheduler.ScheduleJob(jobDetail, trigger);
Console.WriteLine("Hello, World!");
}
}
}
#解决方案 -- 启动程序那里, 我修改为顶级域名,
await MainAsync();
static async Task MainAsync()
{
//TODO :
}
#并且要记得加上"Console.ReadKey();"
尾言
一个控制台程序也不简单啊, 也遇到坑了...
程序启动直接跑异步没搞过,
忘了"Console.ReadKey();"...
惭愧惭愧...
标签:Core,Quartz,Console,--,await,Test,scheduler,var
From: https://www.cnblogs.com/love-zf/p/17580730.html