Class CronTask

java.lang.Object
cool.scx.scheduling.CronTask
All Implemented Interfaces:
ScheduleTask

public class CronTask extends Object implements ScheduleTask
Cron 执行的任务
  • Constructor Details

    • CronTask

      public CronTask()
  • Method Details

    • expression

      public CronTask expression(String expression)
    • concurrent

      public CronTask concurrent(boolean concurrent)
      Description copied from interface: ScheduleTask
      是否运行并发执行 运行并发执行的时候 当到达规定时间时 无论上一次任务是否结束 都会开启下一次任务
      Specified by:
      concurrent in interface ScheduleTask
      Parameters:
      concurrent - 并发执行
      Returns:
      self
    • maxRunCount

      public CronTask maxRunCount(long maxRunCount)
      Description copied from interface: ScheduleTask
      最大运行次数 (此参数不受并发影响) 注意 当 并行(concurrent) 设置为 false 的时候 也可以在任务内部 取消 如下
      
              ScxScheduling
                       .fixedRate()
                       .delay(Duration.ofMillis(1))
                       .concurrent(false)
                       .start(c -> {
                           if (c.runCount() > 10){
                               c.cancel();
                           }
                           System.err.println(" runCount : " + c.runCount());
                       });
        
      但是此方式在 允许并发时并不准确 runCount 计数会因为多个线程同时运行累加从而跳过判断条件 所以如果需要 限制最大运行次数 推荐使用此参数
      Specified by:
      maxRunCount in interface ScheduleTask
      Parameters:
      maxRunCount - 最大运行次数
      Returns:
      self
    • expirationPolicy

      public CronTask expirationPolicy(ExpirationPolicy expirationPolicy)
      Description copied from interface: ScheduleTask
      过期策略
      Specified by:
      expirationPolicy in interface ScheduleTask
      Parameters:
      expirationPolicy - a
      Returns:
      a
    • executor

      public CronTask executor(ScheduledExecutorService executor)
      Description copied from interface: ScheduleTask
      执行器

      默认会使用单例的 ScxScheduler 不建议自行设置

      Specified by:
      executor in interface ScheduleTask
      Parameters:
      executor - 执行器
      Returns:
      self
    • task

      public CronTask task(Consumer<ScheduleStatus> task)
      Description copied from interface: ScheduleTask
      任务
      Specified by:
      task in interface ScheduleTask
      Parameters:
      task - 任务
      Returns:
      self
    • start

      public ScheduleStatus start()
      Description copied from interface: ScheduleTask
      启动任务
      Specified by:
      start in interface ScheduleTask
      Returns:
      调度状态
    • run

      public void run()