基于单线程异步多任务框架的任务并行处理方法和系统与流程

未命名 08-18 阅读:141 评论:0


1.本发明属于任务并行处理的技术领域,特别是涉及一种基于单线程异步多任务框架的任务并行处理方法、系统、设备及介质。


背景技术:

2.基于目前智能驾驶的传感器特性适配的广泛性,使智能驾驶功能更加庞大和复杂化,具体表现如下:
3.(1)智能驾驶功能往往由于交互目标模块过多,各个节点的处理走向衍生出了庞大的处理分支,随着后续需求和功能的变更,如特定报文下的处理可能并不一定适配同种传感器的其他类型,造成通讯超时或异常;同时适配新特性的传感器,易导致先前接口和通道通讯方式存在不匹配的问题。
4.(2)流程链条过长,前序信息处理的状态结果信息需要保存并传递给后续流程进一步处理,因为异步处理的多线程,需要以全局方式去保存处理或是逐级保存后往下传递,往往需要中间状态信息,易导致流程较长,存储管理的信息冗余,逻辑处理愈臃肿,异步和多线程易导致中间状态信息延迟和丢失影响后续处理的逻辑。如传感器的云端刷写(ota)升级,该升级包括升级前序处理、升级流程、升级后处理及异常回滚等流程策略,其中传感器的特性信息传递,安全校验认证秘钥(key)的衔接,文件传输块(block)的协商,数据包传输时的流控和确认,耗时业务等待,读写区地址数据校验,失败点回滚处理等都需要关联上下文信息,进行多轮交互。
5.(3)通道阻塞式处理,模块间或模块内使用同步阻塞式通讯交互,通道被占用,阻塞和影响使用该通路的其他通讯,对于通讯时间较敏感的通讯往往导致异常或失败,仅通过多开线程的方式并不能解决问题。如基于控制器局域网总线的uds诊断(docan)协议栈中网络层定时(n_br和n_cr)时间参数有30毫秒、50毫秒等,甚至连续数据帧发送的时间参数为1毫秒,对时间比较敏感很容易导致通讯超时失败。基于控制器局域网总线的uds诊断很容易导致通讯超时失败。基于控制器局域网总线的uds诊断的传感器5秒没有通讯处理就会退回到默认会话,当前非默认会话下的通讯将会失败;基于以太网络的诊断(doip)的传感器5秒内没有通讯,甚至会主动断开由ip地址和端口结合的,提供向应用层进程传送数据包机制的套接字(socket),在一系列的时间参数限制下使用阻塞式通讯易频繁的导致通讯失败。
6.(4)多任务多功能并行处理时,业务功能间的粘连耦合使业务功能本身并不相互影响的功能不得不进行串行化处理,增加了处理的时间,业务功能效率较低,影响用户体验。如doip和docan传感器的同时诊断,两种诊断通路本是相互独立的,由于业务功能间的粘连耦合,当前出现了doip和docan诊断之间在切换时必须等待5秒以上,甚至面对doip和docan间的协作处理如传感器标定时往往需修改业务逻辑变更需求。
7.(5)流程业务固化,受业务功能请求的推动,不便于配置化流程往往有自动化处理和动态可调整的需求。如doip的激光雷达传感器(lidar)首次切换至编程会话时,需要切换
系统进行重启,连接时需重新建立;docan的毫米波传感器(srr)执行硬重启(hard reset)后,往往需要等待500ms后才能继续进行诊断通讯;docan的超声波雷达传感器(ussc)刷写不仅要刷写固件应用程序(app firmware),还需要刷写固件引导程序(boot firmware)和固件校准程序(cal firmware),各个文件刷写流程的不同需将业务功能流程与传感器特性深度捆绑,常导致业务功能流程优化受限。
8.鉴于此,本发明提出一种基于单线程异步多任务框架的任务并行处理方法、系统、设备及介质,以解决目前智能驾驶功能在使用时,造成的交互目标多,流程链条过长,业务处理方式易阻塞,业务耦合固化的问题。


技术实现要素:

9.本发明提供一种基于单线程异步多任务框架的任务并行处理方法、系统、设备和介质,通过提供自动化异步并行多任务框架,使各业务功能间实现深度解耦,提高业务功能的复用性和适配性,业务流程自动化运行并可优化配置。
10.本发明的目的及解决其技术问题是采用以下技术方案来实现的。
11.本发明提供一种基于单线程异步多任务框架的任务并行处理方法,该任务并行处理方法包括:在多任务框架下,将与外部的通讯交互封装为指令任务,将通讯交互中同步阻塞请求封装为新增的异步适配特征任务的方式;基于所述指令任务的交互请求,将所述指令任务注册到对应不同任务的通路中;基于相关的所述指令任务生成业务功能请求的一般任务和链式任务;聚合统一诊断服务通讯一般任务、认证校验一般任务和文件传输刷写一般任务;基于链式任务流程进行升级流程的前序处理、安全校验、文件刷写、进度检查、一致性校验和异常重试和回滚的业务功能;复用不同传感器中通用的业务功能;基于任务工作状态判断各任务的关系;顺序执行任务队列中的任务;基于所述指令任务的预设条件进入等待链式任务和顶层任务的循环处理;其中,一般任务包括上层一般任务和顶层一般任务。
12.可选的,基于相关的所述指令任务生成业务功能请求的一般任务包括:聚合相关的通讯指令任务生成对应业务功能的一般任务;聚合业务逻辑的一般任务和所述指令任务生成响应业务请求的顶层一般任务;生成业务功能请求的链式任务。
13.可选的,聚合相关的通讯指令任务生成对应业务功能的一般任务包括:基于统一诊断服务与控制器局域网总线的诊断、以太网络的诊断传感器通讯指令任务和通讯后延时控制的定时器任务中至少两种聚合生成统一诊断服务诊断通讯的一般任务。
14.可选的,聚合相关的通讯指令任务生成对应业务功能的一般任务还包括:聚合生成统一诊断服务诊断通讯的一般任务;基于传感器的认证掩码以及传感器应用层和驱动层的认证算法,生成安全校验流程的一般任务。
15.可选的,聚合相关的通讯指令任务生成对应业务功能的一般任务还包括:
16.聚合生成统一诊断服务诊断通讯的诊断通讯文件;基于诊断通讯文件传输中的二进制文件格式、文件大小和起始地址信息清除升级前存储区域信息;协商升级传感器文件的传输,控制升级传感器文件的传输,校验传输的升级传感器文件的一致性。
17.可选的,生成对应业务功能的一般任务还包括:
18.嵌套多层相关的通讯指令任务;解耦同级任务;基于业务逻辑组合串联解耦的同级任务和通讯指令任务生成对应业务功能的链式的一般任务。
19.可选的,生成对应业务功能的一般任务还包括:
20.获取任务执行和结果回调通知,基于结果回调通知检查任务执行的结果和相关任务反馈信息,发布下一个任务生成任务的链式流程;串联任务的链式流程,组合复杂的业务功能解耦的同级任务和通讯指令任务;复用链式流程中重复执行的所述任务指令;反馈每个任务执行的结果回调;基于每个任务生成的任务流覆盖业务流程中每个任务分支,定位异常任务分支。
21.可选的,基于任务工作状态判断各任务的关系包括:处理任务调度,启动任务工作循环,依次检查任务状态结果,判断各任务间的关系。
22.可选的,顺序执行任务队列中的任务包括:顺序执行所述指令任务队列中的任务;顺序执行所述一般任务队列中的任务;顺序执行所述顶层一般任务队列中的任务。
23.可选的,将与外部的通讯交互封装为指令任务包括:将外部建立的通讯交互封装为单个独立的所述指令任务;建立对应通讯的所述指令任务;在上层一般任务中聚合所述指令任务;新增聚合的所述指令任务的特征;基于所述指令任务适配新增特征。
24.可选的,将通讯交互中同步阻塞请求封装为新增的异步适配特征任务的方式包括:
25.基于控制器局域网总线的诊断协议栈和新增适配特征的控制器局域网总线传感器新建新增的适配特征的控制器局域网总线传感器的所述指令任务,基于新增特征适配所述指令任务并生成统一诊断服务的一般任务。
26.可选的,将通讯交互中同步阻塞请求封装为新增的异步适配特征任务的方式还包括:将同步通讯交互方式转换为异步多任务请求应答反馈的方式。可选的,该任务并行处理方法还包括:注册和配置结合任务上下文的状态信息,基于所述状态信息控制单个通路中仅一个所述指令任务被执行。
27.可选的,该任务并行处理方法还包括:
28.依次实时调度执行同一队列中的任务;对于不同队列中的顶层一般任务实施同时多任务并发执行;对于不同队列中多个相同一般任务实施同时并发执行。
29.可选的,基于所述指令任务的预设条件进入等待链式任务和顶层任务的循环处理包括:基于所述指令任务预设的最小时间片条件等待链式任务和顶层任务的休眠处理;等待新的任务请求;或启动任务工作,回复反馈;或在定时器超时事件下,任务工作被重新激活并执行。
30.可选的,基于所述指令任务的预设条件进入等待链式任务和顶层任务的循环处理还包括:
31.周期性将队列中的任务依次顺序检查和执行后,基于所述指令任务中的最小超时器的时间进行等待处理,等待有新的请求、回复反馈;或在定时器超时的事件情况下,任务工作重新被激活并执行。
32.可选的,该任务并行处理方法还包括:在封装诊断的统一诊断服务通讯的一般任务中,获取通讯统一诊断服务相应新增的异步适配特征配置的文件信息,基于所述配置的文件信息构建相应的一般任务;自动化执行所述一般任务。
33.可选的,该任务并行处理方法还包括:基于通讯统一诊断服务修改对应新增的异步适配特征配置的文件信息;基于所述配置的文件信息动态调整和优化通讯统一诊断服务
业务流程对应的一般任务;自动化执行所述一般任务。
34.本发明还提供一种基于单线程异步多任务框架的任务并行处理系统,该任务并行处理系统包括:指令任务模块,用于在多任务框架下,将与外部的通讯交互封装为指令任务,将通讯交互中同步阻塞请求封装为新增的异步适配特征任务的方式;基于所述指令任务的交互请求,将所述指令任务注册到对应不同任务的通路中;聚合任务模块,用于基于相关的所述指令任务生成业务功能请求的一般任务和链式任务;聚合统一诊断服务通讯一般任务、认证校验一般任务和文件传输刷写一般任务;基于链式任务流程进行升级流程的前序处理、安全校验、文件刷写、进度检查、一致性校验和异常重试和回滚的业务功能;复用不同传感器中通用的业务功能;任务调度模块,用于基于任务工作状态判断各任务的关系;顺序执行任务队列中的任务;基于所述指令任务的预设条件进入等待链式任务和顶层任务的循环处理;其中,一般任务包括上层一般任务和顶层一般任务。
35.可选的,该任务并行处理系统还包括:任务配置模块,用于注册和配置结合任务上下文的状态信息,基于所述状态信息控制单个通路中仅一个所述指令任务被执行。
36.可选的,该任务并行处理系统还包括:任务线程模块,用于依次实时性调度执行同一队列中的任务;对于不同队列中的顶层一般任务实施同时多任务并发执行;对于不同队列中多个相同一般任务实施同时并发执行。
37.本发明还提供一种电子设备,该电子设备包括:存储器,用于存储非暂时性计算机可读指令;以及处理器,用于运行所述计算机可读指令,使得所述计算机可读指令被所述处理器执行时实现上述所述的基于单线程异步多任务框架的任务并行处理方法。
38.本发明还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在设备上运行时,使得所述设备执行上述所述的基于单线程异步多任务框架的任务并行处理方法。
39.本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明至少具有以下优点及有益效果之一:
40.一、本发明提供的一种基于单线程异步多任务框架的任务并行处理方法,该任务并行处理方法包括:在多任务框架下,将与外部的通讯交互封装为指令任务,将通讯交互中同步阻塞请求封装为新增的异步适配特征任务的方式;基于所述指令任务的交互请求,将所述指令任务注册到对应不同任务的通路中;基于相关的所述指令任务生成业务功能请求的一般任务和链式任务;聚合统一诊断服务通讯一般任务、认证校验一般任务和文件传输刷写一般任务;基于链式任务流程进行升级流程的前序处理、安全校验、文件刷写、进度检查、一致性校验和异常重试和回滚的业务功能;复用不同传感器中通用的业务功能;基于任务工作状态判断各任务的关系;顺序执行任务队列中的任务;基于所述指令任务的预设条件进入等待链式任务和顶层任务的循环处理;其中,一般任务包括上层一般任务和顶层一般任务。本发明通过将与外部的通讯交互封装为指令任务,基于指令任务的交互请求,将指令任务注册到对应不同任务的通路中;基于相关的指令任务生成业务功能请求的一般任务;聚合相关的通讯指令任务生成对应业务功能的一般任务;聚合一般任务和指令任务生成顶层一般任务;生成业务功能请求的链式任务;处理任务调度,启动任务工作循环,依次检查任务状态,判断各任务间关系;顺序执行任务队列的任务;基于指令任务的条件进入等待任务的循环处理流程。本发明通过提供自动化异步并行的多任务框架,使各业务功能间
实现深度解耦,提高业务功能的复用性和适配性,业务流程自动化运行并可优化配置。本发明通过提供的一种基于单线程异步多任务框架的任务并行处理方法,自动化异步并行多任务框架,使各业务功能间实现深度解耦,提高业务功能的复用性和适配性,业务流程自动化运行并可优化配置。
41.二、本发明还提供一种基于单线程异步多任务框架的任务并行处理系统,该任务并行处理系统包括:指令任务模块,用于在多任务的任务框架下,将与外部的通讯交互封装为指令任务,将通讯交互中同步阻塞请求封装为新增的异步适配特征任务的方式;基于所述指令任务的交互请求,将所述指令任务注册到对应不同任务的通路中;聚合任务模块,用于基于相关的所述指令任务生成业务功能请求的一般任务和链式任务;聚合统一诊断服务通讯一般任务、认证校验一般任务和文件传输刷写一般任务;基于链式任务流程进行升级流程的前序处理、安全校验、文件刷写、进度检查、一致性校验和异常重试和回滚的业务功能;复用不同传感器中通用的业务功能;任务调度模块,用于基于任务工作状态判断各任务的关系;顺序执行任务队列中的任务;基于所述指令任务的预设条件进入等待链式任务和顶层任务的循环处理;其中,一般任务包括上层一般任务和顶层一般任务。本发明通过任务基类模块,继承任务创建的总基类,该任务基类模块包括:单步任务、定时器任务、指令任务、一般任务和任务事件,用于集成上述多任务的通用处理;通过指令任务模块将与外部的通讯交互封装为指令任务;通过任务配置模块基于指令任务的交互请求,将指令任务注册到对应不同任务的通路中;通过聚合任务模块基于相关的指令任务生成业务功能请求的一般任务;聚合相关的通讯指令任务生成对应业务功能的一般任务;聚合一般任务和指令任务生成顶层一般任务;生成业务功能请求的链式任务;通过任务调度模块处理任务调度,启动任务工作循环,依次检查任务状态,判断各任务间关系;任务线程模块顺序执行任务队列的任务;基于指令任务的条件进入等待任务的循环处理流程。本发明通过提供自动化异步并行的多任务框架,使各业务功能间实现深度解耦,提高业务功能的复用性和适配性,业务流程自动化运行并可优化配置。本发明通过提供的一种基于单线程异步多任务框架的任务并行处理方法,应用于基于单线程异步多任务框架的任务并行处理系统上,自动化异步并行多任务框架,使各业务功能间实现深度解耦,提高业务功能的复用性和适配性,业务流程自动化运行并可优化配置。
42.三、本发明还提供一种电子设备,该电子设备包括:存储器,用于存储非暂时性计算机可读指令;以及处理器,用于运行所述计算机可读指令,使得所述计算机可读指令被所述处理器执行时实现上述所述的基于单线程异步多任务框架的任务并行处理方法。本发明通过提供的一种基于单线程异步多任务框架的任务并行处理方法,应用于电子设备上,自动化异步并行多任务框架,使各业务功能间实现深度解耦,提高业务功能的复用性和适配性,业务流程自动化运行并可优化配置。
43.四、本发明还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在设备上运行时,使得所述设备执行上述所述的基于单线程异步多任务框架的任务并行处理方法。本发明通过提供的一种基于单线程异步多任务框架的任务并行处理方法,应用于计算机可读存储介质,自动化异步并行多任务框架,使各业务功能间实现深度解耦,提高业务功能的复用性和适配性,业务流程自动化运行并可优化配置。
44.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,
而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
45.图1是本发明一实施例的一种基于单线程异步多任务框架的任务并行处理方法的流程示意图;
46.图2是本发明一实施例的任务并行处理方法的指令任务和指令任务通路的运行的流程示意图;
47.图3是本发明一实施例的任务并行处理方法的任务线程工作循环调度的流程示意图;
48.图4是本发明一实施例的任务并行处理方法的聚合任务链式方式执行的流程示意图;
49.图5是本发明一实施例的任务并行处理方法的任务流程链式中任务聚合链运行的流程示意图;
50.图6是本发明一实施例的任务并行处理方法的任务框架中新增特征任务的流程示意图;
51.图7是本发明一实施例的任务并行处理方法的任务阻塞同步变更为异步事件的流程示意图;
52.图8是本发明一实施例的任务并行处理方法的任务异步并发的流程示意图;
53.图9是本发明一实施例的任务并行处理方法的任务配置自动化的流程示意图;
54.图10是本发明一实施例的一种基于单线程异步多任务框架的任务并行处理系统的结构示意图;
55.图11是本发明一实施例的电子设备的结构示意图;
56.图12是本发明另一实施例的单线程异步多任务框架的单线程异步多任务框架的结构示意图。
具体实施方式
57.为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的其具体实施方式、结构、特征及其功效,详细说明如下。
58.本发明在多任务的task框架下,提供一种基于单线程异步多任务的task框架的任务并行处理方法,该任务并行处理方法通过将与外部的通讯交互封装为指令任务,基于指令任务的交互请求,将指令任务注册到对应不同任务的通路中;基于相关的指令任务生成业务功能请求的一般任务;聚合相关的通讯指令任务生成对应业务功能的一般任务;聚合一般任务和指令任务生成顶层一般任务;生成业务功能请求的链式任务;处理任务调度,启动任务工作循环,依次检查任务状态,判断各任务间关系;顺序执行任务队列的任务;基于指令任务的条件进入等待任务的循环处理流程。本发明通过提供自动化异步并行的多任务框架,使各业务功能间实现深度解耦,提高业务功能的复用性和适配性,业务流程自动化运行并可优化配置。
59.本发明的目的及解决其技术问题是采用以下技术方案来实现的。
60.本发明提供一种基于单线程异步多任务框架的任务并行处理方法,如图1所示,该任务并行处理方法包括如下步骤。
61.s1:在多任务框架下,将与外部的通讯交互封装为指令任务,将通讯交互中同步阻塞请求封装为新增的异步适配特征任务的方式;基于所述指令任务的交互请求,将所述指令任务注册到对应不同任务的通路中。
62.需要说明的是,基于单线程异步多任务的task框架创建任务后,将基于单线程异步多任务的task框架与外部的通讯交互请求封装为一个个指令任务,并将通讯交互中同步阻塞耗时的请求封装为非阻塞的异步事件的方式,并根据指令任务中的通讯交互请求与外部以串行方式进行独立的、排他的通讯交互时,将上述指令任务注册到对应的不同任务的通路中,以避免相同通路间交互请求的相互干扰。如图2所示,在多任务的task框架下,task框架业务自身和外部模块之间建立多个由task框架业务自身向外部模块的交互请求,如交互请求a、交互请求b、交互请求c、交互请求d和交互请求e,在上述交互请求分别一一转换为指令任务如指令任务a、指令任务b、指令任务c、指令任务d和指令任务e,并将上述指令任务注册到注册指令任务集中。其中,注册指令任务集包括多条指令通路,如指令通路x和指令通路y,例如,上述注册可以将上述多个指令任务如指令任务a和指令任务d注册配置在指令通路x中,将指令任务b、指令任务c和指令任务e注册配置在指令通路y中,注册配置的指令任务a和指令任务d与注册配置的指令任务b、指令任务c和指令任务e之间不能相互干扰。
63.s2:基于相关的所述指令任务生成业务功能请求的一般任务和链式任务;聚合统一诊断服务通讯一般任务、认证校验一般任务和文件传输刷写一般任务;基于链式任务流程进行升级流程的前序处理、安全校验、文件刷写、进度检查、一致性校验和异常重试和回滚的业务功能;复用不同传感器中通用的业务功能。
64.需要说明的是,通过聚合上述相关通讯指令任务形成特定业务功能的一般任务,进一步聚合业务功能逻辑的一般任务和指令任务以生成响应业务请求的顶层一般任务,以生成业务功能请求的链式任务,实现单线程异步多任务的task框架下业务自身功能请求的链式任务。一般任务可多层嵌套、同级任务之间可以进行高度解耦操作,使一般任务具有很强的组合性和复用性,还可通过一般任务的配置实现任务间的依赖、排他、中断等处理流程,进而根据业务功能的逻辑将上述任务组合串联为一个整体,组合串联起来的任务整体能够实现复杂的业务功能需求,组合串联的任务以链式方式执行,每一个任务均有清晰的执行请求和执行反馈,业务分支走向清晰明确。
65.在本发明的实施例中,上述传感器升级的多个任务聚合在一起,生成传感器$34/$38文件传输、控制和刷写流程的一般任务。继续将统一诊断服务通讯的一般任务、认证校验一般任务和文件传输刷写一般任务进一步聚合在一起,根据一般任务的链式流程实现传感器升级刷写流程的前序处理、安全校验、升级文件传输进而刷写、升级进度的检查、升级文件的一致性校验以及升级异常的重试回滚等一个完整的业务功能,不同的传感器升级任务还可以高度共同通用任务的链式流程中相同任务的复用。如图5所示,以传感器任务流程链式中任务聚合链运行示例,传感器通讯指令任务可以针对升级任务按1:1的比例执行“执行指令”和“指令反馈事件回调”;通讯延时定时器任务针对传感器升级任务按1:1的比例执行“定时器事件回调”。将上述传感器通讯指令任务和通讯延时定时器任务聚合生成统一诊断
服务一般任务,该统一诊断服务一般任务包括“发送统一诊断服务指令”和“统一诊断服务结果回调”,将统一诊断服务一般任务中将“发送统一诊断服务指令”和“统一诊断服务结果回调”按大于1:1的比例分别进行复杂的业务功能一般任务的拆解,将传感器升级的统一诊断服务一般任务拆解为安全认证服务一般任务、文件传输刷写一般任务和传感器升级一般任务。其中,安全认证服务一般任务包括“传感器认证掩码”、“传感器应用层认证算法”和“传感器驱动层认证算法”;文件传输刷写一般任务包括“二进制文件格式转换”、“刷写存储空间清除”、“文件传输控制协商”、“文件传输控制”和“刷写一致性校验”。传感器升级一般任务包括“升级前序检查”、“安全校验”、“文件传输刷写”、“进度检查”、“刷写一致性校验”和“失败重写”。进一步将安全认证服务一般任务中的“传感器认证掩码”、“传感器应用层认证算法”和“传感器驱动层认证算法”按1:1的比例进行任务的链式流程组合至传感器升级一般任务中,以及文件传输刷写一般任务中的“二进制文件格式转换”、“刷写存储空间清除”、“文件传输控制协商”、“文件传输控制”和“刷写一致性校验”亦按1:1的比例进行任务的链式流程组合至传感器升级一般任务中,重新生成传感器升级一般任务的“升级前序检查”、“安全校验”、“文件传输刷写”、“进度检查”、“刷写一致性校验”和“失败重写”的任务的链式流程组合。
66.s3:基于任务工作状态判断各任务的关系;顺序执行任务队列中的任务;基于所述指令任务的预设条件进入等待链式任务和顶层任务的循环处理。其中,一般任务包括上层一般任务和顶层一般任务。
67.需要说明的是,启动任务线程处理任务调度,单线程异步多任务的任务框架下,工作线程启动任务工作循环,工作线程在工作循环中依次检查循环中的任务状态结果,用于判断各个任务之间的依赖、中断、排他等任务关系;接着按顺序执行指令任务队列中排列的任务、顺序执行一般任务队列中排列的任务、顺序执行顶层一般任务队列中排列的任务;最后根据指令任务预设的最小时间片设置,将指令任务等待休眠处理,等待新的任务请求;或启动任务事件,以唤醒工作线程继续循环处理任务状态。其中,指令任务的执行是执行与外部模块的通讯交互请求后,等待通讯交互请求的结果反馈;一般任务是处理业务功能的逻辑和执行指令任务;任务的链式是根据前一个执行结果创建和发布新的任务,通过任务调度操作不断将新的任务发布至各个任务队列中等待执行,同时管理任务的执行结果,回调反馈和更新任务上下文追踪状态信息。
68.如图3所示,启动任务线程,由任务线程启动工作线程,使工作线程进入任务线程工作循环流程,如按任务线程工作循环流程依次循环执行检查任务状态结果、执行指令任务队列集、执行一般任务队列集、执行顶层一般任务队列集、指令任务最小时间片等待和任务或任务事件唤醒。任务的链式流程根据前一个任务执行结果创建和发布新的任务,通过任务调度操作不断将新的任务发布至各个任务队列中等待执行,如分布至任务线程工作循环中的执行指令任务队列集、执行一般任务队列集和执行顶层一般任务队列集,同时管理任务的执行结果,回调反馈和更新任务状态上下文更新,执行任务上下文追踪的状态信息。本发明通过提供的一种基于单线程异步多任务框架的任务并行处理方法,实现了自动化异步并行多任务框架,使各业务功能间实现深度解耦,提高业务功能的复用性和适配性,业务流程自动化运行并可优化配置。
69.可选的,基于相关的所述指令任务生成业务功能请求的一般任务包括:
70.聚合相关的通讯指令任务生成对应业务功能的一般任务;
71.聚合业务逻辑的一般任务和所述指令任务生成响应业务请求的顶层一般任务;
72.生成业务功能请求的链式任务。
73.需要说明的是,如图4所示,以指令任务a、指令任务b和指令任务c为例,指令任务a和指令任务b分别转换为一般任务x,同时指令任务b对应转换为顶层一般任务z,指令任务c转换为一般任务y,在以指令任务a、指令任务b和指令任务c相关通讯指令任务形成特定业务请求z,并对应将一般任务x、指令任务b和一般任务y聚合生成顶层一般任务z,在进一步执行聚合任务的链式执行流程,将上述顶层一般任务z转化为执行聚合任务的链式执行流程,如执行特定业务请求z对应按顺序执行顶层一般任务z、一般任务x、指令任务a、指令任务b、一般任务b、一般任务y和指令任务c。本发明通过上述生成业务功能请求的链式任务的步骤,实现了将一般任务多层嵌套、同级任务之间实现高度解耦操作,使一般任务具有很强的组合性和复用性,还可通过一般任务的配置实现任务间的依赖、排他、中断等处理流程,进而根据业务功能的逻辑将上述任务组合串联为一个整体,组合串联起来的任务整体以实现复杂的业务功能需求。
74.可选的,聚合相关的通讯指令任务生成对应业务功能的一般任务包括:
75.基于统一诊断服务与控制器局域网总线的诊断、以太网络的诊断传感器通讯指令任务和通讯后延时控制的定时器任务中至少两种聚合生成统一诊断服务诊断通讯的一般任务。
76.需要说明的是,业务功能的一般任务可以为传感器的升级流程,一般传感器的升级流程链式任务较长,但链式任务流程是清楚明确的,可以根据传感器升级流程构建各类任务,最终将整个传感器升级流程链式串行化处理起来。通过定义统一诊断服务与基于控制器局域网总线的诊断,以及与基于以太网络的诊断传感器通讯指令任务和通讯后延时控制的定时器任务,将两种聚合生成统一诊断服务诊断通讯的一般任务,以实现针对统一诊断服务诊断通讯的一般任务。
77.可选的,聚合相关的通讯指令任务生成对应业务功能的一般任务还包括:
78.聚合生成统一诊断服务诊断通讯的一般任务;
79.基于传感器的认证掩码以及传感器应用层和驱动层的认证算法,生成安全校验流程的一般任务。
80.需要说明的是,聚合生成统一诊断服务诊断通讯的一般任务,以传感器升级为例,根据升级传感器的认证掩码,以及升级传感器的应用层和驱动层的认证算法,实现安全校验流程的一般任务,聚合生成统一诊断服务诊断通讯。
81.可选的,聚合相关的通讯指令任务生成对应业务功能的一般任务还包括:
82.聚合生成统一诊断服务诊断通讯的诊断通讯文件;
83.基于诊断通讯文件传输中的二进制文件格式、文件大小和起始地址信息清除升级前存储区域信息;
84.协商升级传感器文件的传输,控制升级传感器文件的传输,校验传输的升级传感器文件的一致性。
85.需要说明的是,聚合生成统一诊断服务诊断通讯的一般任务还包括根据统一诊断服务诊断通讯文件传输中的二进制文件格式、文件大小和起始地址信息实现升级前存储区
域中存储内容信息的清除,实现统一诊断服务系统传感器$34/$38文件传输协商并协商成功,完成$36文件传输控制,以及在实现传输控制完毕后$36文件的一致性校验。
86.可选的,生成对应业务功能的一般任务还包括:
87.嵌套多层相关的通讯指令任务;解耦同级任务;基于业务逻辑组合串联解耦的同级任务和通讯指令任务生成对应业务功能的链式的一般任务。
88.需要说明的是,例如多层相关的通讯指令任务通过业务功能的多层相关的通讯指令任务进行嵌套,在嵌套前进行相关的多个同级通讯指令任务的拆解,解除相互之间的耦合关系。基于业务功能中同级通讯指令任务的逻辑关系将解除耦合的多个相关的通讯指令任务进行组合连接,使同级任务和通讯指令任务生成对应业务功能的单线程链式的一般任务。
89.可选的,生成对应业务功能的一般任务还包括:
90.获取任务执行和结果回调通知,基于结果回调通知检查任务执行的结果和相关任务反馈信息,发布下一个任务生成任务的链式流程;
91.串联任务的链式流程,组合复杂的业务功能解耦的同级任务和通讯指令任务;
92.复用链式流程中重复执行的所述任务指令;
93.反馈每个任务执行的结果回调;
94.基于每个任务生成的任务流覆盖业务流程中每个任务分支,定位异常任务分支。
95.需要说明的是,在任务框架下,任务的执行方法和结果回调通知的方法,可通过在结果回调通知流程中检查任务执行的结果,以及相关任务反馈信息;然后再继续发布下一个任务,从而实现任务的链式流程。本发明通过将任务的链式串联在一起,并将复杂的业务功能进行拆解并组合在一起,形成链式化流程。在链式化流程处理中,重复的通用任务部分可以复用,比如,特定流程段的失败重试处理等。每个任务的执行都会有结果回调反馈,复杂的功能业务可以根据任务流覆盖业务功能流程中正常和异常情况下的每个任务分支,每个业务功能流程均十分清晰明确,不会出现业务流程遗漏或者业务功能跑飞的情况,同时发生异常任务的状况点均可进行精准的定位。
96.可选的,基于任务工作状态判断各任务的关系包括:
97.处理任务调度,启动任务工作循环,依次检查任务状态结果,判断各任务间的关系。
98.需要说明的是,如启动任务线程,处理任务调度,启动任务工作循环,由任务线程启动工作线程,使工作线程进入任务线程工作循环流程,如按任务线程工作循环流程依次循环执行检查任务状态结果、执行指令任务队列集、执行一般任务队列集、执行顶层一般任务队列集、指令任务最小时间片等待和任务或任务事件唤醒,并依次检查上述任务线程工作循环流程中各个任务状态及运行结果,以判断上述各任务间的执行关系。
99.可选的,顺序执行任务队列中的任务包括:
100.顺序执行所述指令任务队列中的任务;
101.顺序执行所述一般任务队列中的任务;
102.顺序执行所述顶层一般任务队列中的任务。
103.需要说明的是,指令任务队列中的任务、一般任务队列中的任务,以及顶层一般任务队列中的任务在执行时,均分别按照各个任务在各自任务队列中所处位置排列的先后顺
序按从头至尾的执行顺序依次执行。
104.可选的,将与外部的通讯交互封装为指令任务包括:
105.将外部建立的通讯交互封装为单个独立的所述指令任务;
106.建立对应通讯的所述指令任务;
107.在上层一般任务中聚合所述指令任务;
108.新增聚合的所述指令任务的特征;
109.基于所述指令任务适配新增特征。
110.需要说明的是,在任务框架中,业务自身在与外部模块建立的通讯均会封装为一个个独立的指令任务,对于出现了新增的特征需求,只需新建一个新增的特征通讯的指令任务,上层一般任务只需要增加聚合这项新增特征的指令任务,一方面维持了现有任务的功能业务不受影响,另一方面以使上层业务功能实施时仍然保持不变,仅通过增加一个适配一个新增特征的特定的指令任务,就完成了新增特征的适配。
111.可选的,将通讯交互中同步阻塞请求封装为新增的异步适配特征任务的方式包括:
112.基于控制器局域网总线的诊断协议栈和新增适配特征的控制器局域网总线传感器新建新增的适配特征的控制器局域网总线传感器的所述指令任务,基于新增特征适配所述指令任务并生成统一诊断服务的一般任务。
113.需要说明的是,在本发明的实施例中,可以通过基于控制器局域网总线的诊断协议栈来实现对新增特征的控制器局域网总线传感器的适配。新建一个新增特征控制器局域网总线传感器的指令任务;在新增特征描述中,将新增特征控制器局域网总线传感器与其他同类传感器的特征区别反馈进指令任务中。例如,控制器局域网总线通讯之间的强制间隔,特定通讯请求后的延时处理等,这样仅需要对应增加一个新增特征的控制器局域网总线传感器指令任务,对其他已经存在的基于控制器局域网总线的诊断通路通讯并不产生影响。在任务框架下,不适合使用耗时较大的同步阻塞式的调用形式,同步阻塞式的调用形式影响任务执行的阻塞调度,可以将耗时较大的同步通讯交互方式调整或转换为异步请求应答反馈的形式,任务框架就能实施聚焦于任务调度流程,进行高效的任务执行。
114.如图6所示,以传感器的诊断为例,在传感器的诊断请求中,多个诊断请求生成统一诊断服务的一般任务,如指令任务a、指令任务b和指令任务c分别对应传感器a、传感器b和新增特征传感器c。指令任务a、指令任务b和指令任务c均包括执行指令和指令反馈事件回调。在指令任务c中还包括差异性新增特征处理。指令任务a、指令任务b和指令任务c对应生成统一诊断服务的一般任务,该统一诊断服务的一般任务包括发送统一诊断服务指令和发送统一诊断服务指令结果回调,可以执行包括新增特征传感器c的传感器的诊断请求,以及上述诊断请求对应的诊断业务功能。
115.可选的,将通讯交互中同步阻塞请求封装为新增的异步适配特征方式还包括:
116.将同步通讯交互方式转换为异步多任务请求应答反馈的方式。
117.需要说明的是,以传感器升级为例,若在任务框架下使用阻塞式的统一诊断服务接口请求,传感器升级包文件的压缩、解压,以及升级包校验等均为耗时较大的阻塞式统一诊断服务接口请求,此时,可以采用另外增开其他线程的方式,将另外增开的其他线程修改为非阻塞式请求应答反馈的事件。以这种另外增设非阻塞式事件的方式,在任务框架中,仅
运行高效的任务调度流程,异步的任务调度机制不会产生耗时较大的阻塞式统一诊断服务接口请求,以及非阻塞式请求应答反馈的事件来影响其他任务的运行。例如,基于控制器局域网总线的诊断协议栈中的毫秒级时间间隔如30毫秒或50毫秒等时间间隔的阈值参数,在传感器升级过程中时间间隔为5秒诊断失活的切默认会话等类似这些对时间度敏感的处理,不会因任务调度而在调度时间上产生叠加影响,并能与传感器升级过程中实际建立的任务框架的执行情况一致,使任务框架的执行具备实时高效的响应性能。如图7所示,任务调度对任务框架上建立的多个任务调度如任务调度a和任务调度b进行调度。在任务调度对任务调度a进行任务调度时,任务框架对任务调度反馈a同步阻塞式调用返回;在任务调度对任务调度b进行任务调度时,任务框架对任务调度反馈b同步阻塞式调用返回。在任务调度a进行调度时,因耗时较大易产生调度被阻塞的事件。在将阻塞同步变更为异步事件时,在任务调度上将任务调度a和任务调度b的统一诊断服务接口请求优先执行,在任务框架分别执行a异步事件反馈和b异步事件反馈时,任务调度流程执行为非阻塞调度。
118.可选的,该任务并行处理方法还包括:
119.注册和配置结合任务上下文的状态信息,基于所述状态信息控制单个通路中仅一个所述指令任务被执行。
120.需要说明的是,在任务框架下,根据实际的通路需求,创建和注册不同的通路,再将不同的指令任务注册配置到不同的通路中,通过注册配置不同通路的信息结合各个通路中任务上下文状态,即可控制单个通路中当前时刻只有一个指令任务执行,以确保与实际传感器通路的单通特性保持一致,避免出现在先前上一请求仍然还在处理中时,后续下一个请求执行下去导致失败或者无应答的情况发生。
121.可选的,该任务并行处理方法还包括:
122.依次实时调度执行同一队列中的任务;
123.对于不同队列中的顶层一般任务实施同时多任务并发执行;
124.对于不同队列中多个相同一般任务实施同时并发执行。
125.需要说明的是,由于任务框架是非阻塞的实时性调度,发布到队列中的任务依次按顺序调度执行,即表现出队列中的顶层一般任务同时多任务并发性执行,还可以配置同时允许的多个同样一般任务并行执行。例如,在传感器升级的场景中,可以根据每个需升级传感器的通路创建一个通路,无需区分该升级传感器的通路是基于控制器局域网总线的诊断,还是基于以太网络的诊断。由于升级传感器通路的独立性,基于控制器局域网总线的诊断部件和基于以太网络的诊断部件可以同时进行刷写。例如,在只有一个总的通路,所有传感器件传感器部件都要串行依次进行升级。以4个基于控制器局域网总线的诊断的角雷达、2个基于以太网络的诊断的激光雷达、1个基于控制器局域网总线的诊断的超声波雷达在同时进行升级刷写时,在任务框架如任务框架下,每个传感器都作为一个独立的通路,通过任务调度并行执行,所有的传感器可以并行同时升级。如角雷达升级一般任务*4创建、注册和配置为角雷达指令任务通路*4;超声波升级一般任务创建、注册和配置为超声波指令任务通路;激光雷达升级一般任务*2创建、注册和配置为激光雷达指令任务通路*2;以及其他传感器升级一般任务创建、注册和配置的其他传感器指令任务通路。本实施例的上述4个基于控制器局域网总线的诊断的角雷达、2个基于以太网络的诊断的激光雷达、1个基于控制器局域网总线的诊断的超声波雷达传感器实现同时刷写完成只需刷写时间130秒左右,而传
统的串行单个升级传感器的依次刷写,在多个传感器升级无法并行的情况下,基于以太网络的诊断与基于以太网络的诊断通路转换、切换和替代会受到制限,这些升级传感器的诊断部件,如升级传感器的角雷达、激光雷达和超声波雷达在全部刷写完成需要耗时约半小时(见图8)。本发明在任务框架下,使用任务框架去实现如多个传感器升级的并行多任务,提升升级的效率。
126.可选的,基于所述指令任务的预设条件进入等待链式任务和顶层任务的循环处理包括:
127.基于所述指令任务预设的最小时间片条件等待链式任务和顶层任务的休眠处理;
128.等待新的任务请求;或
129.启动任务工作,回复反馈;或
130.在定时器超时事件下,任务工作被重新激活并执行。
131.需要说明的是,将队列中的任务按顺序依次检查和执行后,根据指令任务中预设的最小超时器的时间进行等待处理,等待有新的请求、回复反馈;或者发生定时器超时事件的情况下,任务重新被激活并执行。如此循环处理,使任务工作线程在实施时实现在较小负载占用下,能实现和满足业务功能任务的自动化、流程化和高效的处理需求。
132.可选的,基于所述指令任务的预设条件进入等待链式任务和顶层任务的循环处理还包括:
133.周期性将队列中的任务依次顺序检查和执行后,基于所述指令任务中的最小超时器的时间进行等待处理,等待有新的请求、回复反馈;或在定时器超时的事件情况下,任务工作重新被激活并执行。
134.需要说明的是,如在任务框架中,任务线程具有周期性,对于升级流程和下线标定流程实施过程中,各种传感器升级的流程并不完全相同,在任务线程执行过程中进行周期性循环处理。
135.可选的,该任务并行处理方法还包括:
136.在封装诊断的统一诊断服务通讯的一般任务中,
137.获取通讯统一诊断服务相应新增的异步适配特征配置的文件信息,基于所述配置的文件信息构建相应的一般任务;自动化执行所述一般任务。
138.需要说明的是,由于传感器的升级和下线标定流程的实施过程中均包括若干列的诊断统一诊断服务通讯,封装诊断统一诊断服务通讯的一般任务,将升级流程和下线标定流程实施过程中的通讯统一诊断服务,通过配置文件进行描述或定义,读取配置文件的统一诊断服务通讯后构建的相应的一般任务,通过任务框架下的自动化任务执行。
139.可选的,该任务并行处理方法还包括:
140.基于通讯统一诊断服务修改对应新增的异步适配特征配置的文件信息;
141.基于所述配置的文件信息动态调整和优化通讯统一诊断服务业务流程对应的一般任务;自动化执行所述一般任务。
142.需要说明的是,由于传感器的升级和下线标定流程的实施过程中均包括若干列的诊断统一诊断服务通讯,封装诊断统一诊断服务通讯的一般任务,将升级流程和下线标定流程实施过程中的通讯统一诊断服务和相应的新增特征通过配置文件进行描述或定义,读取配置文件的统一诊断服务通讯后构建的相应的一般任务,通过任务框架下的自动化任务
执行,从而实现了传感器升级流程和下线标定流程配置化的自动化实施,实现了无需变更task框架下开发部分的内容信息,仅通过修改传感器升级流程和下线标定流程配置文件就可动态调整和优化传感器升级业务流程。如图9所示,升级流程/产线下线流程;解析流程配置文件;根据流程配置依次创建执行每个节点用例通用一般任务;生成统一诊断服务一般任务;在通讯子任务中基于统一诊断服务与控制器局域网总线的诊断、以太网络的诊断传感器通讯指令任务和通讯后延时控制的定时器任务进行任务调度,生成统一诊断服务诊断通讯的一般任务,以及统一诊断服务一般任务和统一诊断服务诊断通讯的诊断通讯文件,以及对应的诊断指令任务。在诊断通讯流程中,生成并执行诊断指令任务业务功能请求的链式任务,实现基于单线程异步多任务框架的传感器升级任务的并行处理。其中,解析流程配置文件流程包括:
143.……
144.《节点用例》
145.《流程进度》0《/流程进度》
146.《请求类型》传输数据《/请求类型》
147.《流程单步》请求编程会话《/流程单步》
148.《寻址类型》物理寻址《/寻址类型》
149.《请求数据》10 02《/请求数据》
150.《请求数据长度》2《/请求数据长度》
151.《回复数据》50 02《/回复数据》
152.《回复数据长度》6《/回复数据长度》
153.《等待时间》500《/等待时间》
154.《延时时间》1000《/延时时间》
155.《/节点用例》
156.……
157.本发明还提供一种基于单线程异步多任务框架的任务并行处理系统,如图10所示,该任务并行处理系统200包括:
158.指令任务模块210,用于在多任务框架下,将与外部的通讯交互封装为指令任务,将通讯交互中同步阻塞请求封装为新增的异步适配特征任务的方式;基于所述指令任务的交互请求,将所述指令任务注册到对应不同任务的通路中;
159.聚合任务模块220,用于基于相关的所述指令任务生成业务功能请求的一般任务和链式任务;聚合统一诊断服务通讯一般任务、认证校验一般任务和文件传输刷写一般任务;基于链式任务流程进行升级流程的前序处理、安全校验、文件刷写、进度检查、一致性校验和异常重试和回滚的业务功能;复用不同传感器中通用的业务功能;
160.任务调度模块230,用于基于任务工作状态判断各任务的关系;顺序执行任务队列中的任务;基于所述指令任务的预设条件进入等待链式任务和顶层任务的循环处理;
161.其中,一般任务包括上层一般任务和顶层一般任务。
162.需要说明的是,该任务并行处理系统200包括的指令任务模块210、任务调度模块230和任务调度模块230运行时,执行如上述所述的基于单线程异步多任务框架的任务并行处理方法,在此不再赘述。
163.可选的,该任务并行处理系统200还包括:
164.任务配置模块240,用于注册和配置结合任务上下文的状态信息,基于所述状态信息控制单个通路中仅一个所述指令任务被执行。
165.需要说明的是,该任务配置模块240与上述任务并行处理系统200运行时,执行如上述所述的基于单线程异步多任务框架的任务并行处理方法,具体的运行方法参见上文方法的阐述内容,在此不再赘述。
166.可选的,该任务并行处理系统200还包括:
167.任务线程模块250,用于依次实时性调度执行同一队列中的任务;
168.对于不同队列中的顶层一般任务实施同时多任务并发执行;
169.对于不同队列中多个相同一般任务实施同时并发执行。
170.需要说明的是,任务线程模块250与上述任务并行处理系统200运行时,执行如上述所述的基于单线程异步多任务框架的任务并行处理方法,具体的运行方法参见上文方法的阐述内容,在此不再赘述。
171.如图11所示,本发明还提供一种电子设备,该电子设备400包括:
172.存储器410,用于存储非暂时性计算机可读指令430;以及
173.处理器420,用于运行计算机可读指令430,使得计算机可读指令430被处理器420执行时实现上述的基于单线程异步多任务框架的任务并行处理方法。
174.本发明还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当计算机指令在设备上运行时,使得设备执行上述所述的基于单线程异步多任务框架的任务并行处理方法。
175.如图12所示,在本发明的另一个实施例提供的单线程异步多任务框架的结构包括各种业务功能消息处理的任务基类模块、管理任务执行流程的任务调度模块、跟踪任务状态的任务上下文追踪模块、任务注册配置化管理的任务配置模块和任务并发执行线程的任务线程模块。任务作为任务框架中处理的核心单元,其主要包括任务基类、单步任务、定时器任务、指令任务和一般任务以及任务事件,其中,任务基类、单步任务都是任务基类,不直接参与到任务调度中。其中,任务基类包括任务的总基类,用于基类的继承,一般不直接使用,集成了一系列任务的通用处理。基类任务的成员包含任务类型、任务标识、顶层任务标识、任务处理回调和任务结果,其中任务类型和认识标识用于任务的唯一标识区分,顶层任务标识用于判定顶层一般任务是否为对应业务请求而创建的顶层一般任务。任务结果和任务回调组合,将结果和任务信息通知给任务调用者;任务调用的流程包括发布任务、执行任务和任务回调,以及任务响应的时间限制。
176.单步任务包括单步任务基类,继承于任务总基类,不直接使用需要继承使用,集成了除任务总基类以外的一系列通用处理,除从基类继承成员以外,该成员包括单步任务的任务标识和调度单步任务的超时事件标识;单步任务执行流程包括单步任务的结果和信息回调反馈,单步任务执行,单步任务结果回调,单步任务中断回调以及单步任务的超时定时器管理,其可通过定时器和超时事件实现任务时间上特殊设定的需求。
177.定时器任务包括定时器任务基类,继于单步任务,主要用于任务执行时的延时等待处理,如多个任务间的时间间隔以及任务执行后的强制时间等待。除从基类继承的成员之外,其成员有定时器任务的超时时间;定时器任务执行的流程有定时器任务的执行,定时
器任务超时回调和定时器任务的中断回调。
178.指令任务包括指令任务基类,继承于单步任务,主要处理端到端的接口通讯交互。指令任务作为任务系统中处理的最小任务单元,指令任务即只处理单步的交互反馈,不能在指令任务中进一步创建其他任务为子任务,指令任务不直接作为外部业务请求呈现,仅作为一般任务的子任务去实现相应的业务功能。除从基类继承的成员之外,其成员有指令任务标识和指令任务状态;指令任务执行流程有定时器任务执行、指令任务等待反馈超时回调通知和指令任务中断取消回调通知。
179.一般任务包括一般任务基类,继承于任务总基类,主要集合了各种指令任务、定时器任务和一般任务,通过控制任务间的链式流程和任务衔接,实现复杂的业务功能。一般任务中创建的单步任务、定时器任务、一般任务等子任务,上述子任务的父任务作为创建者的一般任务。其中,顶层一般任务是特殊的一般任务,即顶层任务没有父任务,会设置为顶层任务标识,顶层一般任务多是由外部直接触发的业务请求去实现某项复杂的和/或较大的业务功能,通常包含多个一般任务、指令任务和定时器任务。一般任务除从基类继承的成员之外,一般任务执行流程有一般任务执行和一般任务回调。
180.任务事件包括任务事件基类,可以是指令任务外部通讯交互中正常、异常、中断、超时的反馈,也可以是定时器任务中的计时器超时事件,也可以是与指令任务关联外部请求或者状态事件等。任务事件作为基类,集合了事件通用的相关属性和执行流程,成员有事件类型、事件标识、事件的参数、事件附带的数据;任务事件执行流程包括获取任务事件各个成员,任务事件推动任务了执行,指令任务和定时器任务根据匹配的任务事件继续执行任务,实现任务的流程化自动化执行。
181.任务调度类也是任务处理的中心管理类,处理任务流程时序调度。该任务调度类成员包括任务线程、任务配置和任务上下文,根据任务配置和上下文状态信息在线程中执行调度任务。任务调度类主要用于以下业务功能:任务框架自身的初始化、起动、停止和解析并构建;任务进缓存队列的处理和回调通知;任务执行时由缓存队列到执行队列,执行任务前的回调通知;任务执行完毕后从队列中释放,任务资源释放回收,执行结果回调通知;以及任务被中断的后续处理以及被中断结果回调通知。
182.跟踪任务状态的任务上下文追踪类主要用于处理任务执行过程中的状态信息,在任务执行条件中状态信息的判断或追踪。任务上下文追踪类的成员包括追踪的指令任务状态上下文集合和一般任务状态上下文集合,主要用于以下业务内容:待执行任务是否已经注册;指令任务的执行通道是否已经注册;任务配置的执行条件当前是否满足执行条件;任务的执行状态管理;任务关联的父任务和子任务上下文信息;以及一般任务和单步任务的关联上下文信息。
183.任务注册配置化管理的任务配置类主要管理任务配置注册信息,以实现任务的配置化和注册化执行方式。该任务配置类成员还包括已注册的指令任务通路集合、已注册的指令任务集合和已注册的一般任务集合,其主要包含以下业务内容:注册一般任务/指令任务/定时器任务;注册指令任务的执行通路;注册一般任务的执行条件;注册配置一般任务执行队列并行数量限制,以及超过数量的处理规则。
184.任务并发执行线程的任务线程类是任务调度实现任务并发执行的载体,使任务能够在相对隔离的环境中按照配置进行自动化流程去执行。该任务线程类成员包括待处理的
指令任务集合、待处理的定时器任务集合、待处理的一般任务集合和执行中的一般任务集合;方法有线程的运行管理、一般任务/指令任务/定时器任务/任务事件的发布、一般任务/指令任务/定时器任务/任务事件处理、任务定时器的调度管理,主要用于以下业务内容:循环遍历队列中任务去执行,根据定时器和事件对任务进行调度;指令任务集处理;一般任务集处理;任务事件转化为顶层一般任务执行;任务事件调度线程执行;以及定时器任务调度线程执行。
185.需要说明的是,流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
186.在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通讯、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
187.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或它们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
188.本技术领域的普通技术人员可以理解实现上述实施例的方法所包括的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
189.此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以一部分采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
190.上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限
制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
191.以上,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单的修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

技术特征:
1.基于单线程异步多任务框架的任务并行处理方法,其特征在于,所述方法包括:在多任务框架下,将与外部的通讯交互封装为指令任务,将通讯交互中同步阻塞请求封装为新增的异步适配特征任务的方式;基于所述指令任务的交互请求,将所述指令任务注册到对应不同任务的通路中;基于相关的所述指令任务生成业务功能请求的一般任务和链式任务;聚合统一诊断服务通讯一般任务、认证校验一般任务和文件传输刷写一般任务;基于链式任务流程进行升级流程的前序处理、安全校验、文件刷写、进度检查、一致性校验和异常重试和回滚的业务功能;复用不同传感器中通用的业务功能;基于任务工作状态判断各任务的关系;顺序执行任务队列中的任务;基于所述指令任务的预设条件进入等待链式任务和顶层任务的循环处理;其中,一般任务包括上层一般任务和顶层一般任务。2.根据权利要求1所述的方法,其特征在于,基于相关的所述指令任务生成业务功能请求的一般任务包括:聚合相关的通讯指令任务生成对应业务功能的一般任务;聚合业务逻辑的一般任务和所述指令任务生成响应业务请求的顶层一般任务;生成业务功能请求的链式任务。3.根据权利要求2所述的方法,其特征在于,聚合相关的通讯指令任务生成对应业务功能的一般任务包括:基于统一诊断服务与控制器局域网总线的诊断、以太网络的诊断传感器通讯指令任务和通讯后延时控制的定时器任务中至少两种聚合生成统一诊断服务诊断通讯的一般任务。4.根据权利要求2所述的方法,其特征在于,聚合相关的通讯指令任务生成对应业务功能的一般任务还包括:聚合生成统一诊断服务诊断通讯的一般任务;基于传感器的认证掩码以及传感器应用层和驱动层的认证算法,生成安全校验流程的一般任务。5.根据权利要求2所述的方法,其特征在于,聚合相关的通讯指令任务生成对应业务功能的一般任务还包括:聚合生成统一诊断服务诊断通讯的诊断通讯文件;基于诊断通讯文件传输中的二进制文件格式、文件大小和起始地址信息清除升级前存储区域信息;协商升级传感器文件的传输,控制升级传感器文件的传输,校验传输的升级传感器文件的一致性。6.根据权利要求2所述的方法,其特征在于,还包括:获取任务执行和结果回调通知,基于结果回调通知检查任务执行的结果和相关任务反馈信息,发布下一个任务生成任务的链式流程;串联任务的链式流程,组合复杂的业务功能解耦的同级任务和通讯指令任务;复用链式流程中重复执行的所述任务指令;反馈每个任务执行的结果回调;基于每个任务生成的任务流覆盖业务流程中每个任务分支,定位异常任务分支。
7.根据权利要求1所述的方法,其特征在于,基于任务工作状态判断各任务的关系包括:处理任务调度,启动任务工作循环,依次检查任务状态结果,判断各任务间的关系。8.根据权利要求1所述的方法,其特征在于,将与外部的通讯交互封装为指令任务包括:将外部建立的通讯交互封装为单个独立的所述指令任务;建立对应通讯的所述指令任务;在上层一般任务中聚合所述指令任务;新增聚合的所述指令任务的特征;基于所述指令任务适配新增特征。9.根据权利要求1所述的方法,其特征在于,将通讯交互中同步阻塞请求封装为新增的异步适配特征任务的方式包括:基于控制器局域网总线的诊断协议栈和新增适配特征的控制器局域网总线传感器新建新增的适配特征的控制器局域网总线传感器的所述指令任务,基于新增特征适配所述指令任务并生成统一诊断服务的一般任务。10.根据权利要求1所述的方法,其特征在于,还包括:依次实时调度执行同一队列中的任务;对于不同队列中的顶层一般任务实施同时多任务并发执行;对于不同队列中多个相同一般任务实施同时并发执行。11.根据权利要求1所述的方法,其特征在于,还包括:周期性将队列中的任务依次顺序检查和执行后,基于所述指令任务中的最小超时器的时间进行等待处理,等待有新的请求、回复反馈;或在定时器超时的事件情况下,任务工作重新被激活并执行。12.根据权利要求1所述的方法,其特征在于,还包括:在封装诊断的统一诊断服务通讯的一般任务中,获取通讯统一诊断服务相应新增的异步适配特征配置的文件信息,基于所述配置的文件信息构建相应的一般任务;自动化执行所述一般任务。13.根据权利要求12所述的方法,其特征在于,还包括:基于通讯统一诊断服务修改对应新增的异步适配特征配置的文件信息;基于所述配置的文件信息动态调整和优化通讯统一诊断服务业务流程对应的一般任务;自动化执行所述一般任务。14.基于单线程异步多任务框架的任务并行处理系统,其特征在于,所述系统包括:指令任务模块,用于在多任务框架下,将与外部的通讯交互封装为指令任务,将通讯交互中同步阻塞请求封装为新增的异步适配特征任务的方式;基于所述指令任务的交互请求,将所述指令任务注册到对应不同任务的通路中;聚合任务模块,用于基于相关的所述指令任务生成业务功能请求的一般任务和链式任务;聚合统一诊断服务通讯一般任务、认证校验一般任务和文件传输刷写一般任务;基于链式任务流程进行升级流程的前序处理、安全校验、文件刷写、进度检查、一致性校验和异常重试和回滚的业务功能;复用不同传感器中通用的业务功能;
任务调度模块,用于基于任务工作状态判断各任务的关系;顺序执行任务队列中的任务;基于所述指令任务的预设条件进入等待链式任务和顶层任务的循环处理;其中,一般任务包括上层一般任务和顶层一般任务。15.根据权利要求14所述的任务并行处理系统,其特征在于,还包括:任务线程模块,用于依次实时性调度执行同一队列中的任务;对于不同队列中的顶层一般任务实施同时多任务并发执行;对于不同队列中多个相同一般任务实施同时并发执行。

技术总结
基于单线程异步多任务框架的任务并行处理方法和系统,该方法包括:将与外部的通讯交互封装为指令任务,基于指令任务的交互请求,将指令任务注册到对应不同任务的通路中;基于相关的指令任务生成业务功能请求的一般任务;聚合相关的通讯指令任务生成对应业务功能的一般任务;聚合一般任务和指令任务生成顶层一般任务;生成业务功能请求的链式任务;处理任务调度,启动任务工作循环,依次检查任务状态,判断各任务间关系;顺序执行任务队列的任务;基于指令任务的条件进入等待任务的循环处理流程。本发明通过提供自动化异步并行多任务框架,使各业务功能间实现深度解耦,提高业务功能的复用性和适配性,业务流程自动化运行并可优化配置。优化配置。优化配置。


技术研发人员:向争鹏
受保护的技术使用者:合众新能源汽车股份有限公司
技术研发日:2023.04.26
技术公布日:2023/8/16
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐