专栏算法工具链定时调度器

定时调度器

TROS.Assist2024-02-28
55
0

1. 功能说明

定时调度器主要用于定时执行周期性任务。 用户可以配置如下选项:

  • 任务执行周期(默认单位ms,也可以配置成ns)

  • 用户期望所要执行的函数

  • 设置周期任务执行次数(-1表示一直执行到timer被取消)

  • 指定定时任务时钟类型,包括稳态时钟/系统时钟/模拟时钟。

  • 任务触发类型,包括DefaultTrigger/SelfTrigger,两种触发类型在周期任务执行时间超过周期间隔时,下一次执行触发时机存在如下区别:

    • DefaultTrigger:根据任务周期间隔触发执行。

    • SelfTrigger:立即重复执行。

2. 核心设计与特性

  1. 定时调度器由time库和dataflow共同实现。内置定时检查线程和多个任务执行线程。

  2. Timer库提供executor基类,dataflow继承自该基类的接口,并实现相关的接口逻辑,主要包括任务的添加/取消。总体的逻辑则是由timer所控制。

    Timer库:实现检查线程的逻辑,周期性检测任务是否超时,当判断当前任务均未超时后阻塞,一直等待到下一次的超时时间;当获取到超时的timer后,则将任务添加至dataflow检查线程来执行。

    Dataflow:实现任务执行逻辑,dataflow内部默认内置4个执行线程,timer库为每个timer生成对应的timer_id,对id进行取模操作,将相同timer_id的任务添加至对应的执行线程队列中。

Description

3. 适用场景

主要用于支持任务的周期性执行。

  • 基于dataflow框架设置调度策略 配置定时调度器策略,不配置则使用dataflow内部默认的定时调度器

  1. 设置定时调度器策略

  1. 设置定时proc属性

4. 调度器参数如何设置

线程相关:

  • 检查线程:调度属性/调度优先级/线程绑核

  • 执行线程:调度属性/调度优先级/线程绑核/执行线程数目

    可以通过在配置文件中设置这些属性

算法工具链
杂谈
评论0
0/1000