• Quartz.net笔记-计划任务触发器(Cron Trigger)


    如果你的任务是需要基于日历每天定时运行,那你就应该使用计划任务触发器,例如每周五中午12:00执行任务,或者每天早上9点执行任务。

    Cron表达式:

    计划任务表达式是一个字符串,它又7个子字符串组合而成,这7个子字符串有空格符间隔,分别表示计划任务触发时间的7个部分

    • 第一位 – 触发时间的秒数
    • 第二位 – 触发时间的分钟数
    • 第三位 – 触发时间的小时数
    • 第四位 – 触发日期是一个月中的哪几天
    • 第五位 – 触发月份是哪几个月,可选值:JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV,DEC或者0-11
    • 第六位 – 触发日期是一周当中的哪些天(周一 – 周日) SUN, MON, TUE, WED, THU, FRI, SAT或者1-7, 1表示周日。这里也可以使用范围, 例:”MON-FRI”, “MON-WED, SAT”
    • 第七位 – 触发的年份(可选参数), 用的比较少

    通配符:

    * 所有可选值

    ? 表明没有特定值,只能用于第四位(day of month)和第六位(day of week)

    / 增量,例如分钟位字符串0/15,表示从0开始,每15分钟触发一次,即每当分钟数为0,15,30,45时候触发任务

    L 最后一天,只能用于第四位(day of month)和第六位(day of week)

    • L单独使用在第四位,表示指定月份的最后一天
    • L 单独使用在第六位,表示周六
    • L 使用在第四位,但是前面有指定数字,表示指定月份的倒数第几天,例如6L, 就是指定月份的倒数第6天
    • L使用在第六位,但是前面有指定数字,表示指定月份的最后一个周几,例如FRIL, 表示指定月份最后一个周五

    W 没明白?

    # 只能用于第六位,表示指定月份的第几个星期的某天,例如6#3, 或者FRI#3都是表示指定月份的第三个周五

    表达式Demo

    0 0/5 * * * ?
    每5分钟运行一次任务,永不停止,除非触发器指定了EndAt
    
    10 0/5 * * * ?
    每5分钟又10秒,运行一次任务,永不停止,除非触发器指定了EndAt
    
    0 30 10-13 ? * WED,FRI
    每周周三周五,10:30, 11:30, 12:30, 13:30各运行4次任务,永不停止,除非触发器指定了EndAt
    
    0 0/30 8-9 5,20 * ?
    每个月的5号,20号,上午8:00,8:30, 9:00, 9:30各运行4次任务,永不停止,除非触发器指定了EndAt
    

    创建触发器:

    TriggerBuilder.Create() 
        .WithIdentity("trigger3", "group1") 
        .WithCronSchedule("0 0/2 8-17 * * ?") 
        .ForJob("myJob", "group1") 
        .Build();
    
  • 相关阅读:
    Save the problem!
    Divisiblity of Differences
    定个小目标
    Faulty Robot
    反片语 uva 156(map的使用
    Input is terminated by EOF.
    uva10815 andy的字典(set的应用)
    uva-101 搬砖问题(不定长数组vector的使用)
    回文串uva401(清简出风尘)
    WERTYU (善用常量数组
  • 原文地址:https://www.cnblogs.com/fanfan-90/p/13689749.html
Copyright © 2020-2023  润新知