类 UniScheduledPromiseTask<V>

java.lang.Object
cn.wjybxx.concurrent.PromiseTask<V>
cn.wjybxx.sequential.UniScheduledPromiseTask<V>
所有已实现的接口:
cn.wjybxx.base.collection.IndexedElement, CancelTokenListener, IFutureTask<V>, IScheduledFutureTask<V>, ITask, Comparable<Delayed>, Runnable, Delayed, Consumer<Object>

@NotThreadSafe public final class UniScheduledPromiseTask<V> extends PromiseTask<V> implements IScheduledFutureTask<V>, cn.wjybxx.base.collection.IndexedElement, Consumer<Object>, CancelTokenListener
定时任务的Task抽象 与ScheduledPromiseTask的几个区别: 1. 时间精度为毫秒。 2. 依赖的Executor类型不同。
作者:
wjybxx date - 2024/1/8
  • 方法详细资料

    • ofAction

      public static UniScheduledPromiseTask<?> ofAction(Runnable action, int options, IScheduledPromise<?> promise, long id, long nextTriggerTime)
    • ofAction

      public static UniScheduledPromiseTask<?> ofAction(Consumer<? super IContext> action, IContext ctx, int options, IScheduledPromise<?> promise, long id, long nextTriggerTime)
    • ofFunction

      public static <V> UniScheduledPromiseTask<V> ofFunction(Callable<? extends V> action, int options, IScheduledPromise<V> promise, long id, long nextTriggerTime)
    • ofFunction

      public static <V> UniScheduledPromiseTask<V> ofFunction(Function<? super IContext,? extends V> action, IContext ctx, int options, IScheduledPromise<V> promise, long id, long nextTriggerTime)
    • ofBuilder

      public static <V> UniScheduledPromiseTask<V> ofBuilder(TaskBuilder<V> builder, IScheduledPromise<V> promise, long id, long tickTime)
    • ofBuilder

      public static <V> UniScheduledPromiseTask<V> ofBuilder(ScheduledTaskBuilder<V> builder, IScheduledPromise<V> promise, long id, long tickTime)
      参数:
      builder - builder
      promise - 监听结果的promise
      id - 给任务分配的id
      tickTime - 当前时间(没有单位)
      返回:
      PromiseTask
    • getId

      public long getId()
    • setId

      public void setId(long id)
    • getNextTriggerTime

      public long getNextTriggerTime()
    • setNextTriggerTime

      public void setNextTriggerTime(long nextTriggerTime)
    • getScheduleType

      public int getScheduleType()
      获取任务的调度类型
    • getPriority

      public int getPriority()
      获取任务所属的队列id
    • setPriority

      public void setPriority(int priority)
      参数:
      priority - 任务的优先级,范围 [0, 255]
    • setTriggered

      public void setTriggered()
      将任务标记为已触发过
    • isTriggered

      public boolean isTriggered()
      任务是否触发过
    • collectionIndex

      public int collectionIndex(Object collection)
      指定者:
      collectionIndex 在接口中 cn.wjybxx.base.collection.IndexedElement
    • collectionIndex

      public void collectionIndex(Object collection, int index)
      指定者:
      collectionIndex 在接口中 cn.wjybxx.base.collection.IndexedElement
    • future

      public IScheduledPromise<V> future()
      从类复制的说明: PromiseTask
      获取任务绑的Promise - 允许子类重写返回值类型
      指定者:
      future 在接口中 IFutureTask<V>
      指定者:
      future 在接口中 IScheduledFutureTask<V>
      覆盖:
      future 在类中 PromiseTask<V>
    • isPeriodic

      public boolean isPeriodic()
      从接口复制的说明: IScheduledFutureTask
      关联的任务是否是周期性任务
      指定者:
      isPeriodic 在接口中 IScheduledFutureTask<V>
    • clear

      public void clear()
      覆盖:
      clear 在类中 PromiseTask<V>
    • run

      public void run()
      从接口复制的说明: IFutureTask
      run方法应当使IFutureTask.future()进入完成状态
      指定者:
      run 在接口中 IFutureTask<V>
      指定者:
      run 在接口中 Runnable
      覆盖:
      run 在类中 PromiseTask<V>
    • trigger

      public boolean trigger(long tickTime)
      外部确定性触发,不需要回调的方式重新压入队列
      返回:
      如果需要再压入队列则返回true
    • cancelWithoutRemove

      public void cancelWithoutRemove()
      该接口只能在EventLoop内调用 -- 且当前任务已弹出队列
    • cancelWithoutRemove

      public void cancelWithoutRemove(int code)
      该接口只能在EventLoop内调用 -- 且当前任务已弹出队列
    • registerCancellation

      public void registerCancellation()
      监听取消令牌中的取消信号
    • accept

      public void accept(Object futureOrToken)
      指定者:
      accept 在接口中 Consumer<V>
    • onCancelRequested

      public void onCancelRequested(ICancelToken cancelToken)
      指定者:
      onCancelRequested 在接口中 CancelTokenListener
    • triggerTime

      public static long triggerTime(long delay, TimeUnit timeUnit, long tickTime)
      计算任务的触发时间
    • getDelay

      public long getDelay(@Nonnull TimeUnit unit)
      从接口复制的说明: IScheduledFutureTask
      获取任务下次执行的延迟。 ps:该接口的可见性取决于实现,某些实现不提供即时的可见性,查询可能是不准确的。
      指定者:
      getDelay 在接口中 Delayed
      指定者:
      getDelay 在接口中 IScheduledFutureTask<V>
    • compareTo

      public int compareTo(@Nonnull Delayed o)
      指定者:
      compareTo 在接口中 Comparable<V>
      指定者:
      compareTo 在接口中 IScheduledFutureTask<V>
    • compareToExplicitly

      public int compareToExplicitly(UniScheduledPromiseTask<?> other)