雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

c# 定时任务cron示例

2024-07-21 38

C#中使用Cron表达式设置定时任务示例:

1. 使用第三方库

Quartz.NET

// 使用 Quartz.NET 库

// 定义 Cron表达式
string cronExpression = "0 0/1 * * * ?"; // 每分钟执行一次

// 创建 JobDetail
JobDetail jobDetail = new JobDetailImpl("myJob", "myGroup", typeof(MyJob));

// 创建 Trigger
Trigger trigger = new CronTriggerImpl("myTrigger", "myGroup", cronExpression);

// 将 JobDetail 和 Trigger 添加到 Scheduler
IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
scheduler.ScheduleJob(jobDetail, trigger);

// 启动 Scheduler
scheduler.Start();

2. 使用原生方法

// 使用原生方法

// 定义 Cron表达式
string cronExpression = "0 0/1 * * * ?"; // 每分钟执行一次

// 解析 Cron表达式
CronExpression cron = CronExpression.Parse(cronExpression);

// 创建计时器
Timer timer = new Timer(new TimerCallback(OnTimer), null, 0, cron.GetNextSecond(DateTime.Now));

// 定时器回调函数
private void OnTimer(object state)
{
    // 您的代码
}

示例说明:

以上示例使用两种方法在 C#中设置定时任务:

使用第三方库 Quartz.NET 使用原生方法

两者都需要定义 Cron表达式,Cron表达式用于指定定时任务的执行时间。

Quartz.NET 库提供了更强大的功能,例如可以设置 JobDetail 和 Trigger 的各种属性。

原生方法相对简单,但功能有限。

其他注意事项:

Cron表达式由六个或七个字段组成,分别表示秒、分、时、日、月、周、年 Cron表达式中的每个字段可以使用以下通配符: *:表示所有值 ?:表示不指定 -:表示范围 /:表示间隔

例如,"0 0/1 * * * ?" 表示每分钟执行一次

更多信息:

Quartz.NET 官方文档:https://www.quartz-scheduler.net/

Cron表达式教程:https://crontab.guru/

更新于:2个月前
赞一波!

文章评论

全部评论