首页 > 其他分享 >CyberRT-任务调度-scheduler

CyberRT-任务调度-scheduler

时间:2025-01-20 17:54:53浏览次数:1  
标签:任务调度 CyberRT cyber task croutine scheduler include class

调度空间

主要关注三个方面 通信和数据传输以及监控   SchedulerConf  TransportConf PerfConf  
 
 OS Process(操作系统进程)、OS Thread(操作系统线程)、Cyber RT Task(用户空间协程)。
   Cyber RT 调度器有两种调度策略,分别为Choreo与Classic,
       Choreo策略是Cyber RT下无人车专属调度,它强调任务执行周期性以及实时性

component--使用传输和调度的起点

cyber/component/component.h
       #include "cyber/croutine/routine_factory.h"
	   #include "cyber/scheduler/scheduler.h"
cyber/component/component_base.h
       #include "cyber/node/node.h"
       #include "cyber/scheduler/scheduler.h"
	   #include "cyber/class_loader/class_loader.h"

sysmo

cyber/sysmo/sysmo.cc
   SysMo::Instance(); ==> 创建系统管理器,用于检测处理器processor状态		
	#include "cyber/scheduler/scheduler_factory.h"

scheduler

cyber/scheduler/scheduler_factory.h	   
     Scheduler* Instance() 
	    new SchedulerChoreography();
		new SchedulerClassic();

cyber/scheduler/policy/classic_context.h    cyber/scheduler/policy/choreography_context.h
cyber/scheduler/policy/scheduler_classic.h  cyber/scheduler/policy/scheduler_choreography.h
     class SchedulerClassic : public Scheduler {  
	 class SchedulerChoreography : public Scheduler {
cyber/scheduler/scheduler.h		   
	   #include "cyber/croutine/croutine.h"
       #include "cyber/croutine/routine_factory.h"
	class Scheduler {   

		
cyber/scheduler/processor.h	
    class Processor {
	
cyber/scheduler/processor_context.h
    class ProcessorContext {		

task

cyber/task/task.h
    #include "cyber/task/task_manager.h"

cyber/task/task_manager.h
     #include "cyber/scheduler/scheduler_factory.h"
     class TaskManager {

croutine

cyber/croutine 
    cyber/croutine/croutine.h
	    class CRoutine {

    cyber/croutine/routine_factory.h
	    #include "cyber/data/data_visitor.h"
	    RoutineFactory  协程通过工厂模式方法创建,里面包含一个回调函数和一个dv(数据访问器)DataVisitor

    cyber/croutine/detail/routine_context.h

标签:任务调度,CyberRT,cyber,task,croutine,scheduler,include,class
From: https://www.cnblogs.com/ytwang/p/18682130

相关文章

  • CyberRT-其他主线内容
    消息和数据Message用Message实现模块间通信,其实现基于protobufcyber/message/message_traits.hcyber/message/raw_message_traits.hcyber/message/raw_message.hcyber/message/arena_message_wrapper.hcyber/message/protobuf_factory.hcyber/data......
  • CyberRT_源码与简单功能
    阅读源码首先快速地作了一个每个模块的简单功能介绍,后续会按照程序的顺序对每个模块深入源码学习核心功能:数据通信和任务调度CyberRT采用了基于Component模块和有向无环图(DAG)的动态加载配置 role_attributescyber/proto/role_attributes.proto中定义了两个数据结......
  • CyberRT-record-源码查看
    记录数据RosbagROSROS中通过record.cpp调用Recorder类来进行bag的保存rosbagrecord的代码位于ros_comm\tools\rosbag\src\recorder.cpp中。实现的类主要为Recorder。Recorder的接口,一共有4个。总的来说,录制bag包的流程分为2个部分, 一个流程......
  • DolphinScheduler项目管理页面加载缓慢?这样优化
    问题现象有时候,ApacheDolphinScheduler项目管理页面会发生加载不出来的问题,浏览器查看为[http://ip:12345/dolphinscheduler/projects?pageSize=10&pageNo=1&searchVal=]请求超时。解决思路查看海豚运行日志(未发现异常)tail/home/dolphinscheduler/api-server/logs/dolph......
  • 十天速成:打造你的AI低代码系统(7.分布式任务调度)
        前言1:系统架构及部署应用2:AI辅助开发和AI辅助测试(基于IDEA插件开发)    2.1IDEA插件开发方法3:无代码-动态列表4:无代码-拖拽表单5:无代码-任务流     5.1任务流-组件案例    5.2 第三方系统健康性检查案例    5.3 如何开......
  • 25、【OS】【Nuttx】最小系统初始化分析(3):任务调度(二)
    背景接上篇wiki24、【OS】【Nuttx】最小系统初始化分析(3):任务调度(一)继续分析Ready队列的更新合并Pending队列还是nxsched_merge_pending,上篇wiki分析到了当前head任务被lock时,无法更新Ready队列。现在继续,当任务没被lock时,此时会遍历Pending队列,并逐一将Pen......
  • dolphinscheduler 创建 mssql 数据源失败解决
    解决方法:在参数处加入{"encryp":"false","trustServerCertificate":"true"}现象:[ERROR]2025-01-1110:44:36.821+0800org.apache.dolphinscheduler.plugin.datasource.api.datasource.AbstractDataSourceProcessor:[124]-Checkdataso......
  • DolphinScheduler自身容错导致的服务器持续崩溃重大问题的排查与解决
    01问题复现在DolphinScheduler中有如下一个Shell任务:current_timestamp(){date+"%Y-%m-%d%H:%M:%S"}TIMESTAMP=$(current_timestamp)echo$TIMESTAMPsleep60在DolphinScheduler将工作流执行策略设置为并行:定时周期调度设置为10秒一次:将定时调度上线后......
  • 化工巨头的选择:惠生工程如何用DolphinScheduler点燃数据集成新火花
    在数字化转型的大潮中,企业面临着数据爆炸性增长的挑战。如何有效地整合和管理来自不同来源的数据,成为企业提升竞争力的关键。本文将详细介绍惠生工程(中国)基于ApacheDolphinScheduler的多源数据集成实践解决方案,包括背景介绍、痛点分析、调度策略设计、关键技术方案以及运维管理......
  • 定时任务与异步任务:django-apscheduler 与 django-Q的区别
    django-apscheduler和django-Q是两个用于调度任务和异步任务处理的Django扩展库,但它们的功能和设计目标有所不同。以下是两者的主要区别:1.django-apschedulerdjango-apscheduler是Django框架下的一个定时任务调度工具,它基于Python的APScheduler实现。它主要......