Interface ScheduleTask<T extends ScheduleTask<T>>

All Known Subinterfaces:
CronTask, MultipleTimeTask, SingleTimeTask
All Known Implementing Classes:
CronTaskImpl, MultipleTimeTaskImpl, SingleTimeTaskImpl

public interface ScheduleTask<T extends ScheduleTask<T>>
调度任务
Version:
0.0.1
Author:
scx567888
  • Method Details

    • concurrent

      T concurrent(boolean concurrent)
      是否运行并发执行 运行并发执行的时候 当到达规定时间时 无论上一次任务是否结束 都会开启下一次任务
      Parameters:
      concurrent - 并发执行
      Returns:
      self
    • maxRunCount

      T maxRunCount(long maxRunCount)
      最大运行次数 (此参数不受并发影响) 注意 当 并行(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 计数会因为多个线程同时运行累加从而跳过判断条件 所以如果需要 限制最大运行次数 推荐使用此参数
      Parameters:
      maxRunCount - 最大运行次数
      Returns:
      self
    • expirationPolicy

      T expirationPolicy(ExpirationPolicy expirationPolicy)
      过期策略
      Parameters:
      expirationPolicy - a
      Returns:
      a
    • executor

      T executor(ScheduledExecutorService executor)
      执行器 默认会使用单例的 ScxScheduler 不建议自行设置
      Parameters:
      executor - 执行器
      Returns:
      self
    • task

      T task(Consumer<ScheduleStatus> task)
      任务
      Parameters:
      task - 任务
      Returns:
      self
    • start

      启动任务
      Returns:
      调度状态
    • start

      default ScheduleStatus start(Consumer<ScheduleStatus> task)