zoukankan      html  css  js  c++  java
  • ThinkDev.TaskLoopTask、CronTask常用属性说明

    LoopTask和CronTask是ThinkDev.Task组件中最基本也是最重要的两大任务元素,目前组件也只实现了该两种模式的任务。
    LoopTask:循环任务,支持间隔为毫秒级
    CronTask:调度任务,支持秒,分,钟,天,月,周 6个级别设置。

    LoopTask设置项:

    属性 说明   默认值
    TaskName 获取或设置该Task对象的个性化名称。 ""
    IsRun 获取或设置该Task是否正常运行,如果为False,则不会真正执行。   false
    Period 获取或设置该Task执行间隔,单位为毫秒。必须设置且必须大于0。 ""
    DueTime 获取或设置该Task第一次延后执行间隔,单位为毫秒。不设置默认为当前时间的下一秒开始。 ""
    BeginTime 获取或设置该Task最早执行时间 0000-00-00
    EndTime 获取或设置该Task最后执行时间 9999-00-00
    ClassName 获取或设置该Task自动调度的类及组件名,格式为:类完整限定名,组件名 ""
    MethodName 获取或设置该Task自动调度的方法名,必须为静态无返回值,无参数函数 ""

    CronTask设置项:

    属性 说明   默认值
    TaskName 获取或设置该Task对象的个性化名称。 ""
    IsRun 获取或设置该Task是否正常运行,如果为False,则不会真正执行。   false
    TimeExpress 获取或设置该Task调度表达式,基本模式仿自Linux中的CronTab语法,稍有变化 ""
    ClassName 获取或设置该Task自动调度的类及组件名,格式为:类完整限定名,组件名 ""
    MethodName 获取或设置该Task自动调度的方法名,必须为静态无返回值,无参数函数 ""

    关于CronTask的TimeExpress 简单解释:
    基本格式:* * * * * *(6列,以空格分隔)
    f1:第1列表示秒0-59,每一秒用*或*/1 表示。
    f2:第2列表示分钟0-59。 
    f3:第3列表示小时0-23。 
    f4:第4列表示日期1-31。 
    f5:第5列表示月份1-12。 
    f6:第6列表示星期几0-7,其中0和7均表示为周日。 

    当f1为 * 时表示每秒都要执行任务,f2为 * 时表示每分钟都要执行程序,其余类推
    当f1为 a-b 时表示从第 a 秒钟到第 b 秒钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 分钟都要执行,其余类推
    当f1为 */n 时表示每 n 秒钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推
    当f1为 a, b, c,... 时表示第 a, b, c,... 秒钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...分钟要执行,其余类推

    示例:
    #每天早上7点执行一次调度任务:
    0 0 7 * * *
    #在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次调度任务:
    0 0 6-12/3 * 12 *
    #周一到周五每天下午 5:00执行一次调度任务:
    0 0 17 * * 1-5
    #每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行一次调度任务
    0 20 0-23/2 * * *
    #每月每天的0 点 20 分, 9 点 20 分, 16 点 20 分执行一次调度任务 
    0 20 0,9,16 * * * 

    配置示例:

    <!-- 循环任务配置 -->
      <LoopTasks>
        <LoopTask TaskName="LoopTest" IsRun="true" Period="1000"  ClassName="ThinkDev.Task.WebTest.TaskTest, ThinkDev.Task.WebTest" MethodName="LoopTest"/>
      </LoopTasks>
    
    
      <!-- 调度任务配置 -->
      <CronTasks>
        <CronTask TaskName="CronTest" IsRun="true" TimeExpress="0 0 */2 * * *" ClassName="ThinkDev.Task.WebTest.TaskTest, ThinkDev.Task.WebTest" MethodName="CronTest"/>
      </CronTasks>

    表示配置了两个任务,一个循环任务,一个调度任务
    其中,循环任务为每秒钟执行一次ThinkDev.Task.WebTest.TaskTest类的LoopTest方法,其中LoopTest方法必须为静态无参无返回值方法
    其中,调度任务为每2小时执行一次ThinkDev.Task.WebTest.TaskTest类的CronTest 方法,其中CronTest 方法必须为静态无参无返回值方法

  • 相关阅读:
    HDU6256 Master of Phi (狄利克雷卷积、欧拉函数)
    POJ2689 Prime Distance
    演练5-4:Contoso大学校园管理系统4
    Week7(10月24日)
    演练5-3:Contoso大学校园管理系统3
    Week7(10月21日)
    演练5-2:Contoso大学校园管理2
    Week6(10月17日):周末别忘记运动
    演练5-1:Contoso大学校园管理1
    Week6(10月14日)
  • 原文地址:https://www.cnblogs.com/pzrr/p/2881060.html
Copyright © 2011-2022 走看看