返回
c# 定时任务cron示例
2024-02-19 1569 0
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/
网友点评
提交