• Spring任务调度核心概念模型


    关于任务调度,Spring 有如下几个核心概念 :

    • Task – 任务
      • 用于表示一个有待执行的任务;
      • 该任务有可能需要被执行一次;
        • 在特定的时间点执行一次;
        • 或者在某个时间点之后再延时特定的时间段之后执行一次;
      • 也有可能需要被反复执行多次;
        • 在特定时间点之后间隔特定的时间段重复执行;
        • 或者在 cron 表达式指定的运行时机重复执行;
      • Spring不存在针对任务对应的接口/类抽象,Spring中一个任务具体以一个Runnable 接口实现类对象的方式存在;
    • TaskExecutor – 任务执行器
      • 表示执行任务(Task)的线程或者线程池;
      • 并不要求一定是线程池,可以是单个线程;
      • 并不要求一定是异步执行任务,也可以是同步执行任务;
      • Spring存在一个接口TaskExecutor用于抽象该任务执行器概念;
      • Spring提供若干个内置TaskExecutor实现类,常见的如下 :
        • SyncTaskExecutor – 在调用者线程内同步执行任务;
        • SimpleAsyncTaskExecutor – 不重用线程,新建线程执行任务;
        • ThreadPoolTaskExecutor – 最常用的基于线程池的任务执行器;
    • TaskScheduler – 任务执行调度器
      • 调度任务执行的工具

      • Spring中存在接口TaskScheduler抽象建模该概念

      • 能够按以下几种方式调度任务的执行

        • 在特定的时间点执行一次
          • ScheduledFuture schedule(Runnable task, <指定时间点>)
        • 以固定频率重复执行
          • ScheduledFuture scheduleAtFixedRate(Runnable task, <指定时间周期>)
          • ScheduledFuture scheduleAtFixedRate(Runnable task, <指定在该时间点之后重复执行> ,<指定时间周期>)
        • 延时执行一次
          • ScheduledFuture scheduleWithFixedDelay(Runnable task, <指定延时时间段>)
          • ScheduledFuture scheduleWithFixedDelay(Runnable task, <指定从该时间点之后开始延时> ,<指定延时时间段>)
        • 使用 Trigger 任务执行触发器 – 可定制,最灵活的一种任务执行触发机制;
          • ScheduledFuture schedule(Runnable task, Trigger trigger)
          • Spring提供Trigger接口用于建模任务触发器这一概念
          • Spring内置提供的 Trigger实现有 :
            • CronTrigger – 基于cron表达式的任务执行触发器
            • PeriodicTrigger – 创建延时执行一次或者固定周期执行多次的任务触发器
      • ScheduledFuture – 被调度了的任务执行

        • Spring使用ScheduledFuture接口抽象表示概念"被调度了的任务",该任务会在将来某个时刻被执行;
        • Spring通过ScheduledFuture接口可以取消调度了的任务或者检查该任务执行是否已经完成;
      • 参考资料

  • 相关阅读:
    Linux: Linux C 获取当前系统时间的时间戳(精确到秒、毫秒、微秒) gettimeofday
    FFmpeg中的时间基(time_base), AV_TIME_BASE
    I帧、P帧、B帧、GOP、IDR 和PTS, DTS之间的关系
    视频压缩和H264
    FFmpeg: AVPacket 结构体分析
    FFmpeg: AVCodecParameters 结构体分析
    音视频编解码: 比特率 码率
    FFmpeg: AVFormatContext 结构体分析
    罗技 HTPC K700
    ra寄存器定位core
  • 原文地址:https://www.cnblogs.com/z-sm/p/13700960.html
Copyright © 2020-2023  润新知