CN113783773B - 一种消息调度方法及系统 - Google Patents
一种消息调度方法及系统 Download PDFInfo
- Publication number
- CN113783773B CN113783773B CN202111336804.5A CN202111336804A CN113783773B CN 113783773 B CN113783773 B CN 113783773B CN 202111336804 A CN202111336804 A CN 202111336804A CN 113783773 B CN113783773 B CN 113783773B
- Authority
- CN
- China
- Prior art keywords
- message
- periodic
- cycle
- messages
- stack
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000000737 periodic effect Effects 0.000 claims abstract description 236
- 230000008569 process Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 7
- 239000002699 waste material Substances 0.000 abstract description 7
- 230000009191 jumping Effects 0.000 description 20
- 230000006854 communication Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 125000004122 cyclic group Chemical group 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- GNFTZDOKVXKIBK-UHFFFAOYSA-N 3-(2-methoxyethoxy)benzohydrazide Chemical compound COCCOC1=CC=CC(C(=O)NN)=C1 GNFTZDOKVXKIBK-UHFFFAOYSA-N 0.000 description 1
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 description 1
- YTAHJIFKAKIKAV-XNMGPUDCSA-N [(1R)-3-morpholin-4-yl-1-phenylpropyl] N-[(3S)-2-oxo-5-phenyl-1,3-dihydro-1,4-benzodiazepin-3-yl]carbamate Chemical compound O=C1[C@H](N=C(C2=C(N1)C=CC=C2)C1=CC=CC=C1)NC(O[C@H](CCN1CCOCC1)C1=CC=CC=C1)=O YTAHJIFKAKIKAV-XNMGPUDCSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供一种消息调度方法及系统,方法包括:基于消息调度请求中的非周期消息执行请求,从非周期消息栈中逐一读取非周期消息并执行,直至所有非周期消息执行完毕;当满足循环开始条件时,从周期消息栈中逐一识别出目标周期消息并执行,直至周期消息栈中的所有目标周期消息执行完毕;其中,每一消息的执行时间间隔均为预设的第一消息间隔;根据每条周期消息的周期参数确定是否在本循环周期中对其执行。通过实施本发明方案,每条消息执行完后只需等待很小的片刻即可开始下一条消息的执行,从而有效提高了消息执行时带宽的利用率,避免了资源的浪费;栈循环周期和各条周期消息的循环周期互相独立设置,从而有效提高了周期消息设置的灵活性。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种消息调度方法、系统、电子设备及存储介质。
背景技术
FC(Fiber Channel)是由美国标准化委员会(ANSI)提出的高速串行传输总线,由于其具备通道和网络的双重优势,具备高带宽、高可靠、抵抗电磁干扰等优点,能够提供非常稳定可靠的光纤连接,容易构建大型的数据传输和通信网络。FC-AE标准是一个应用到航空电子环境中的一组协议族,主要用于航空电子下各设备之间的数据通信,传输视频、指控、仪器仪表、传感器等数据,目前FC-AE网络在诸多航电网络和军工设备中得到了广泛的应用。
FC-AE-1553是Fiber Channel-Avionics Environment-UpperLayer ProtocolMIL-STD-1553B Notice 2的简称,是在光纤通道的FC-4层实现对传统MIL-STD-1553BNotice 2总线协议的映射,以实现在实时的航空应用中,以命令/响应的模式进行具有确定性的通信。协议之所以在 FC-4 层实现对传统总线协议的映射,其目的在于使得现有的MIL-STD-1553B网络设计、软件和硬件进行平滑升级。FC-AE-1553 网络既具有MIL-STD-1553B网络的基本特性,又具有光纤通道的良好网络性能,是对MIL-STD-1553B很好的传承。
FC-AE-1553通讯过程主要是通过消息的交换来实现的,而消息根据是否需要周期执行又可分为周期消息和非周期消息,周期消息一旦开启后则会根据循环周期循环执行,而非周期消息开启后执行一次就会被丢弃。
现有技术中,周期消息和非周期消息的调度机制如下所述:
1、需预先设置一个周期消息的执行时间,该执行时间需要大于每条消息的实际执行时间,每条消息在执行完之后必须等待一段时间之后才能满足执行时间的要求,随后才能读取并执行下一条消息,如图2所示;
2、需预先设置周期消息的循环周期和一个周期消息栈的循环周期,栈里面的消息全部运行完一次的时间应小于等于循环周期的时间,如果多条消息的循环周期不一致,需通过计算各条消息循环周期的公约数或者公倍数来设置周期消息栈的循环周期,如图3和图4所示。
现有技术的周期消息和非周期消息的调度机制存在以下缺点:
1、因每条消息实际的执行时间差别较大,这样会导致有的消息在执行完之后需要等待很长的一段时间才能开始下一条消息的执行,会造成带宽资源的浪费;
2、栈的循环周期与各条消息的循环周期密切相关,循环周期时间分度较大,循环周期设置需要综合考虑栈的循环周期与各条消息的循环周期,设置的灵活性不高。
发明内容
本发明提供一种消息调度方法、系统、电子设备及存储介质,用以解决上述技术问题,能够提高消息执行时带宽的利用率,并提高周期消息的配置灵活性。
本发明提供一种消息调度方法,包括:
响应消息调度请求,基于所述消息调度请求中的非周期消息执行请求,从非周期消息栈中逐一读取非周期消息并执行,直至所述非周期消息栈中的所有非周期消息执行完毕;
判断当前时间是否满足预设的循环开始条件,若是,则记录当前循环次数,继而从周期消息栈中逐一识别出目标周期消息并执行,直至所述周期消息栈中的所有目标周期消息执行完毕;
其中,所述非周期消息的执行间隔、所述目标周期消息的执行间隔均为预设的第一消息间隔;
所述周期消息栈中的各个周期消息包含有周期参数,所述目标周期消息是周期参数与所述当前循环次数相匹配的周期消息。
根据本发明的消息调度方法,所述响应消息调度请求,基于所述消息调度请求中的非周期消息执行请求,从非周期消息栈中逐一读取非周期消息并执行,直至所述非周期消息栈中的所有非周期消息执行完毕,包括:
响应消息调度请求,若判断所述消息调度请求中不具有非周期消息执行请求时,则跳转至判断当前时间是否满足预设的循环开始条件对应的步骤。
根据本发明的消息调度方法,所述目标周期消息的识别方式包括:
读取所述周期消息的周期参数,若判断所述当前循环次数是所述周期参数的整数倍,则将该周期消息判定为目标周期消息。
根据本发明的消息调度方法,还包括:
若在对所述周期消息栈中的目标周期消息进行执行的过程中监测到非周期消息,则将监测到的非周期消息依次添加至所述非周期消息栈;
在所述周期消息栈中的所有目标周期消息执行完毕之后,生成非周期消息执行请求并添加至下一周期的消息调度请求中。
根据本发明的消息调度方法,所述判断当前时间是否满足预设的循环开始条件,包括:
根据预设的最小循环周期判断当前时间是否满足预设的循环开始条件;
若所述当前时间与所述最小循环周期相匹配,则判定为满足预设的循环开始条件;
若所述当前时间与所述最小循环周期不匹配,则判定为不满足预设的循环开始条件。
根据本发明的消息调度方法,还包括:
当判断当前时间不满足预设的循环开始条件时,重复执行响应消息调度请求对应的步骤,直至判断当前时间满足预设的循环开始条件。
根据本发明的消息调度方法,所述预设的最小循环周期大于所有周期消息的执行时间之和。
本发明还提供一种消息调度系统,包括:
消息调度响应模块,用于响应消息调度请求,基于所述消息调度请求中的非周期消息执行请求,从非周期消息栈中逐一读取非周期消息并执行,直至所述非周期消息栈中的所有非周期消息执行完毕;
周期消息执行模块,用于判断当前时间是否满足预设的循环开始条件,若是,则记录当前循环次数,继而从周期消息栈中逐一识别出目标周期消息并执行,直至所述周期消息栈中的所有目标周期消息执行完毕;
其中,所述非周期消息的执行间隔、所述目标周期消息的执行间隔均为预设的第一消息间隔;
所述周期消息栈中的各个周期消息包含有周期参数,所述目标周期消息是周期参数与所述当前循环次数相匹配的周期消息。
本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述消息调度方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述消息调度方法的步骤。
本发明提供的消息调度方法、系统、电子设备及存储介质,通过设置统一的时间间隔,每条消息执行完后只需等待很小的片刻即可开始下一条消息的执行,因此有效提高了消息执行时带宽的利用率,解决了资源浪费的问题;栈循环周期的设置和各条周期消息的循环周期互相独立设置,从而解决了周期消息繁琐的配置问题,提高了设置的灵活性。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的消息调度方法的流程示意图;
图2是现有技术的消息循环周期和执行时间设置示意图;
图3是现有技术的通过最小公倍数求循环周期的消息调度示意图;
图4是现有技术的通过最大公约数求循环周期的消息调度示意图;
图5是本发明一实施例提供的消息参数和结构设置示意图;
图6是本发明一实施例提供的消息调度过程示意图;
图7是本发明一实施例提供的消息调度方法的另一流程示意图;
图8是本发明一实施例提供的消息调度系统的结构示意图;
图9是本发明一实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,现有技术的消息调度方案如下:
1、需预先设置一个周期消息的执行时间,该执行时间需要大于每条消息的实际执行时间,每条消息在执行完之后必须等待一段时间之后才能满足执行时间的要求,随后才能读取并执行下一条消息;
2、需预先设置周期消息的循环周期和一个周期消息栈的循环周期,栈里面的消息全部运行完一次的时间应小于等于循环周期的时间,如果多条消息的循环周期不一致,需通过计算各条消息循环周期的公约数或者公倍数来设置周期消息栈的循环周期。
如图3所示,通过最小公倍数求循环周期:假设cb0的循环周期为1.5ms,cb1的循环周期为3ms,则周期栈的循环周期可设为3ms,此时周期消息栈的排布如图3所示,在图3所示的周期消息排布结构中,cb0的循环周期为周期消息栈的循环周期的二分之一(即周期消息栈循环一次的过程中,cb0消息被执行了2次),cb1的循环周期等于周期消息栈的循环周期(即周期消息栈循环一次的过程中,cb1消息被执行了1次);非周期消息可插补在空消息的位置执行。
如图4所示,通过最大公约数求循环周期:假设cb0的循环周期为4ms,cb1的循环周期为6ms,则周期栈的循环周期可设为2ms,此时周期消息栈的排布如图4所示,在图4所示的周期消息排布结构中,cb0的循环周期为周期消息栈的循环周期的2倍(即周期消息栈每循环两次的过程中,cb0消息被执行了1次),cb1的循环周期为周期消息栈的循环周期的3倍(即周期消息栈每循环三次的过程中,cb1消息被执行了1次);非周期消息可插补在空消息的位置执行。
现有技术的消息调度机制存在以下缺点:
1、因每条消息实际的执行时间差别较大,这样会导致有的消息在执行完之后需要等待很长的一段时间才能开始下一条消息的执行,会造成带宽资源的浪费;
2、栈的循环周期与各条消息的循环周期密切相关,循环周期时间分度较大,循环周期设置需要综合考虑栈的循环周期与各条消息的循环周期,设置的灵活性不高。
针对上述现有技术的周期消息和非周期消息的调度方式中存在的带宽资源浪费、消息调度不灵活以及非周期消息执行实时性差的问题,本发明提供一种消息调度方法,该调度方式可以有效的解决上述问题,本发明主要解决的问题如下:
1、不需要设置消息的执行时间,每条消息执行完后只需等待很小的片刻即可开始下一条消息的执行;从而解决了带宽资源的浪费问题;
2、只需要单独设置每条消息的配置信息,然后通过设置一个时间计数器来轮询每条消息的执行周期数,当当前循环次数满足该条消息的执行周期参数条件时,则执行该消息,否则不执行;
由于栈循环周期和各条消息的循环周期相互独立,因此解决了周期消息繁琐的配置问题,应用起来更加灵活。
3、在执行完周期消息后单独预留时间进行非周期消息的处理,从而有效解决了非周期消息执行实时性差的问题。
如图1所示,本发明实施例提供一种消息调度方法,包括步骤:
S1、响应消息调度请求,基于消息调度请求中的非周期消息执行请求,从非周期消息栈中逐一读取非周期消息并执行,直至非周期消息栈中的所有非周期消息执行完毕。
S2、判断当前时间是否满足预设的循环开始条件,若是,则记录当前循环次数,继而从周期消息栈中逐一识别出目标周期消息并执行,直至周期消息栈中的所有目标周期消息执行完毕。
其中,非周期消息的执行间隔、目标周期消息的执行间隔均为预设的第一消息间隔;
周期消息栈中的各个周期消息包含有周期参数,目标周期消息是周期参数与当前循环次数相匹配的周期消息。
在本发明实施例中,进一步地,目标周期消息的识别方式包括:
读取周期消息的周期参数,若判断当前循环次数是周期参数的整数倍,则将该周期消息判定为目标周期消息。
需要说明的是,本发明实施例提供的消息调度方法为循环调度过程中的其中一个周期。在每一周期中,先对非周期消息栈进行非周期消息的执行,再对周期消息栈进行周期消息的执行。可以理解的是,在循环过程中,非周期消息栈的执行过程和周期消息栈的执行过程始终为交替进行,因此在一个周期中,也可以先执行周期消息栈再执行非周期消息栈。
在本发明实施中,第一消息间隔和每一周期消息的周期参数为预先设定,其中,周期消息栈中的周期消息之间、非周期消息栈中的非周期消息之间均按照第一消息间隔进行执行节奏的管理。另外,周期消息栈与非周期消息栈之间也可以采用第一消息间隔作为执行时间间隔,也可以采用其他时间间隔(根据预设的最小循环周期确定)。
需要说明的是,在同一个周期内,周期消息栈中的周期消息并不一定全部都需要执行,每一周期消息是否在本周期内执行由该周期消息的周期参数确定(与当前循环次数相匹配)。例如,某一周期消息的周期参数为每2个周期执行一次,则只有记录的当前循环次数是1、3、5...(或0、2、4、6...)的时候才执行该周期消息。
在本发明实施例中,进一步地,步骤S1包括:
响应消息调度请求,若判断消息调度请求中不具有非周期消息执行请求时,则跳转至步骤S2。
需要说明的是,在每个循环周期中,不一定都存在需要执行非周期消息。若在该循环周期中没有需要执行的非周期消息,则直接跳转至步骤S2。
在本发明实施例中,进一步地,所述消息调度方法还包括:
若在对周期消息栈中的目标周期消息进行执行的过程中监测到非周期消息,则将监测到的非周期消息依次添加至非周期消息栈;
在周期消息栈中的所有目标周期消息执行完毕之后,生成非周期消息执行请求并添加至下一周期的消息调度请求中。
需要说明的是,当周期消息栈在循环的过程中突然有非周期消息需要执行时,则等待当前周期消息栈中全部周期消息执行完成后,再跳转到非周期消息栈依次执行非周期消息。
在本发明实施例中,进一步地,所述判断当前时间是否满足预设的循环开始条件,包括:
根据预设的最小循环周期判断当前时间是否满足预设的循环开始条件;在本发明实施例中,进一步地,预设的最小循环周期大于所有周期消息的执行时间之和。
若当前时间与最小循环周期相匹配,则判定为满足预设的循环开始条件;
若当前时间与最小循环周期不匹配,则判定为不满足预设的循环开始条件。
需要说明的是,在对周期消息栈进行循环之前,需要判断当前时间是否达到开始循环的条件。具体地,可以根据预先设置的最小循环周期进行判断,例如,设置的最小循环周期为5秒(0-5秒为一个循环周期、5-10秒为另一个循环周期,以此类推;也可以是2-7秒、3-8秒为第一个循环周期,第一个周期的起始时间可以单独设定);由于本发明实施例方案为先执行非周期消息,则5秒前用于执行非周期消息,到达5秒时即代表当前时间满足预设的循环开始条件,随即开始依次执行周期消息栈中的周期消息,直至所有满足本次循环执行条件的周期消息都执行完毕(例如用时3秒,此时的当前时间为8秒),那么,8-10秒这一间隔用于执行下一循环周期的非周期消息,当前时间到达10秒时,则又满足预设的循环开始条件,随即开始依次执行周期消息栈中的周期消息(由于每个周期消息的周期参数不同,每一循环周期中,周期消息的执行时间可能为0-5秒不等),以此类推。
需要说明的是,该最小循环周期为预先根据所有需要执行的周期消息的执行时间总和来确定。理论上该最小循环周期可以任意设定,因为并不是所有的周期消息都需要在同一个周期执行,且可能不需要执行非周期消息;例如每个循环周期中只需要执行一个周期消息,那么该最小循环周期只需要设置为大于最长的周期消息执行时间即可。而为了保证每个循环周期都能将所有的周期消息执行完毕,则优选地将该最小循环周期设置为大于所有周期消息执行时间的总和。
在本发明实施例中,进一步地,所述消息调度方法还包括:
当判断当前时间不满足预设的循环开始条件时,重复执行步骤S1,直至判断当前时间满足预设的循环开始条件。
需要说明的是,若当前时间未满足预设的循环开始条件,则需要进行等待循环开始。在等待的过程中,重复执行步骤S1,以充分将该时间利用于执行非周期消息(在等待过程中可能会不定时监测到需要执行非周期消息,此等待期间监测到的非周期消息均为即时执行,无需等到下一循环周期)。
基于上述各实施例提供的消息调度方法,以下对本发明方案进行具体举例说明:
对于周期消息的执行:
首先设置一个周期消息栈,并设置2个时间参数:最小循环周期△t1(△t1应大于栈内所有的周期消息执行时间之和),消息间隔 △t2,如图5所示,最小循环周期用来控制整个周期消息栈的循环,消息间隔用来控制当前消息执行完之后到下一条消息开始执行时的时间间隔;
然后在周期消息栈中依次添加待执行的周期消息,并且对每条添加到周期消息栈中的周期消息设置一个消息执行周期参数M,(M值的含义为每M个最小循环周期执行一次该消息),如图5所示;
周期消息的调度过程如图6所示;
循环过程会根据最小循环周期△t1依次对周期消息栈内的所有待执行的周期消息进行轮询,并记录周期消息栈循环的次数N,如果当前轮询到的周期消息满足N=M*i(其中i为正整数)的关系,则执行该周期消息,然后等待△t2后,开始轮询下一条周期消息并对其进行是否执行的判定;否则跳过该周期消息的执行,直接开始轮询下一条周期消息并对其进行是否执行的判定;
当周期消息栈内最后一条周期消息被轮询过之后,此次周期消息栈的循环结束,如图6所示;
对于非周期消息的执行:
同样需要设置一个非周期消息栈,此非周期消息栈与周期消息栈的最大区别在于:周期消息栈内的消息有执行周期的要求,执行一次之后不能丢弃,仍需保存在周期消息栈内等待下一次执行;而非周期消息栈内的消息没有执行周期的要求,在执行一次之后需要被丢弃,属于一次性的消息;
当周期消息栈在循环的过程中突然有非周期消息需要执行时,则等待当前周期消息全部执行完成后,跳转到非周期消息栈依次执行非周期消息,如图6所示;
每执行完一条非周期消息后等待△t2时间间隔之后,判断非周期消息栈内是否有未读取的非周期消息,如果存在未读取的非周期消息,则读取并执行该条非周期消息;
当非周期消息栈内的消息全部执行过之后(即非周期消息栈内不存在未读取的非周期消息),则跳回到周期消息栈的循环过程继续循环。
与现有技术相比,本发明方案具有如下有益效果:
1、由于每相邻两条消息之间的执行间隔均为一个设定的时间间隔,因此有效提高了消息执行时带宽的利用率,解决了资源浪费的问题;
2、无需根据各个消息的执行时长的最小公倍数确定周期消息栈的循环周期,解决了消息栈内消息的排布问题,消息的执行更加灵活;
3、解决了非周期消息在执行时时效性低的问题。
基于上述方案,为便于更好的理解本发明实施例提供的消息调度方法,以下列举具体实例进行详细说明:
如图7所示,消息调度过程如下:
a、首先开启系统的消息调度,然后跳转到b;
b、等待循环开始,跳转到步骤c;
c、当前是否有非周期消息的执行请求,如果有则跳转到步骤m,否则跳转到d;
d、是否满足循环条件开启了新的循环,如果是则跳转到e,否则跳转到步骤b;
e、记录当前循环次数N,然后跳转到步骤f;
f、开始从周期消息栈读取第一条周期消息Cb 0 ,然后跳转到步骤g;
g、根据读取到的第一条周期消息Cb 0 的消息执行周期参数M,判断当前周期消息是否满足执行周期的要求;如果满足N=M*i(其中i为正整数)的时间关系,则开始执行周期消息Cb 0 ,然后跳转到步骤h;否则跳过周期消息Cb 0 的执行过程,直接跳转到步骤i;
h、等待△t2时间间隔,然后跳转到步骤i;
i、开始读取下一条周期消息Cb m ,然后跳转到步骤j;
j、根据读取到的周期消息Cb m 的消息执行周期参数M,判断当前周期消息是否满足执行周期的要求;如果满足N=M*i(其中i为正整数)的时间关系,则开始执行周期消息Cb m ,然后跳转到步骤k;否则跳过周期消息Cb m 的执行过程,直接跳转到步骤l;
k、等待△t2时间间隔,跳转到步骤l;
l、判断周期消息栈内的消息是否全部执行完成,如果全部执行完成,则跳转到步骤b,否则跳转到步骤i;
m、从非周期消息栈中读取非周期消息并执行,且在当前非周期消息执行完成后删除和丢弃当前非周期消息,依次读取非周期消息直到非周期消息栈中为空,然后跳转到步骤d。
下面对本发明提供的消息调度系统进行描述,下文描述的消息调度系统与上文描述的消息调度方法可相互对应参照。
请参见图8,本发明实施例提供了一种消息调度系统,包括:
消息调度响应模块1,用于响应消息调度请求,基于消息调度请求中的非周期消息执行请求,从非周期消息栈中逐一读取非周期消息并执行,直至非周期消息栈中的所有非周期消息执行完毕;
周期消息执行模块2,用于判断当前时间是否满足预设的循环开始条件,若是,则记录当前循环次数,继而从周期消息栈中逐一识别出目标周期消息并执行,直至周期消息栈中的所有目标周期消息执行完毕;
其中,非周期消息的执行间隔、目标周期消息的执行间隔均为预设的第一消息间隔;
周期消息栈中的各个周期消息包含有周期参数,目标周期消息是周期参数与当前循环次数相匹配的周期消息。
本案实施例的消息调度系统的工作原理与上述实施例的消息调度方法是相应的,此处不再一一赘述。
图9示例了一种电子设备的实体结构示意图,如图9所示,该电子设备可以包括:处理器(processor)910、通信接口(Communications Interface)920、存储器(memory)930和通信总线940,其中,处理器910,通信接口920,存储器930通过通信总线940完成相互间的通信。处理器910可以调用存储器930中的逻辑指令,以执行所述的消息调度方法,该方法包括:响应消息调度请求,基于消息调度请求中的非周期消息执行请求,从非周期消息栈中逐一读取非周期消息并执行,直至非周期消息栈中的所有非周期消息执行完毕;判断当前时间是否满足预设的循环开始条件,若是,则记录当前循环次数,继而从周期消息栈中逐一识别出目标周期消息并执行,直至周期消息栈中的所有目标周期消息执行完毕;其中,非周期消息的执行间隔、目标周期消息的执行间隔均为预设的第一消息间隔;周期消息栈中的各个周期消息包含有周期参数,目标周期消息是周期参数与当前循环次数相匹配的周期消息。
此外,上述的存储器930中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各实施例所提供的消息调度方法,该方法包括:响应消息调度请求,基于消息调度请求中的非周期消息执行请求,从非周期消息栈中逐一读取非周期消息并执行,直至非周期消息栈中的所有非周期消息执行完毕;判断当前时间是否满足预设的循环开始条件,若是,则记录当前循环次数,继而从周期消息栈中逐一识别出目标周期消息并执行,直至周期消息栈中的所有目标周期消息执行完毕;其中,非周期消息的执行间隔、目标周期消息的执行间隔均为预设的第一消息间隔;周期消息栈中的各个周期消息包含有周期参数,目标周期消息是周期参数与当前循环次数相匹配的周期消息。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的消息调度方法,该方法包括:响应消息调度请求,基于消息调度请求中的非周期消息执行请求,从非周期消息栈中逐一读取非周期消息并执行,直至非周期消息栈中的所有非周期消息执行完毕;判断当前时间是否满足预设的循环开始条件,若是,则记录当前循环次数,继而从周期消息栈中逐一识别出目标周期消息并执行,直至周期消息栈中的所有目标周期消息执行完毕;其中,非周期消息的执行间隔、目标周期消息的执行间隔均为预设的第一消息间隔;周期消息栈中的各个周期消息包含有周期参数,目标周期消息是周期参数与当前循环次数相匹配的周期消息。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (7)
1.一种消息调度方法,其特征在于,包括:
响应消息调度请求,基于所述消息调度请求中的非周期消息执行请求,从非周期消息栈中逐一读取非周期消息并执行,直至所述非周期消息栈中的所有非周期消息执行完毕;
判断当前时间与预设的最小循环周期是否匹配,以判断当前时间是否满足预设的循环开始条件,若是,则记录当前循环次数,继而从周期消息栈中逐一识别出目标周期消息并执行,直至所述周期消息栈中的所有目标周期消息执行完毕;
其中,所述非周期消息的执行间隔、所述目标周期消息的执行间隔均为预设的第一消息间隔;所述预设的最小循环周期大于所有周期消息的执行时间之和;
所述周期消息栈中的各个周期消息包含有周期参数,所述目标周期消息是周期参数与所述当前循环次数相匹配的周期消息;所述目标周期消息的识别方式包括:读取所述周期消息的周期参数,若判断所述当前循环次数是所述周期参数的整数倍,则将该周期消息判定为目标周期消息。
2.根据权利要求1所述的消息调度方法,其特征在于,所述响应消息调度请求,基于所述消息调度请求中的非周期消息执行请求,从非周期消息栈中逐一读取非周期消息并执行,直至所述非周期消息栈中的所有非周期消息执行完毕,包括:
响应消息调度请求,若判断所述消息调度请求中不具有非周期消息执行请求时,则跳转至判断当前时间是否满足预设的循环开始条件对应的步骤。
3.根据权利要求1所述的消息调度方法,其特征在于,还包括:
若在对所述周期消息栈中的目标周期消息进行执行的过程中监测到非周期消息,则将监测到的非周期消息依次添加至所述非周期消息栈;
在所述周期消息栈中的所有目标周期消息执行完毕之后,生成非周期消息执行请求并添加至下一周期的消息调度请求中。
4.根据权利要求1所述的消息调度方法,其特征在于,还包括:
当判断当前时间不满足预设的循环开始条件时,重复执行响应消息调度请求对应的步骤,直至判断当前时间满足预设的循环开始条件。
5.一种消息调度系统,其特征在于,包括:
消息调度响应模块,用于响应消息调度请求,基于所述消息调度请求中的非周期消息执行请求,从非周期消息栈中逐一读取非周期消息并执行,直至所述非周期消息栈中的所有非周期消息执行完毕;
周期消息执行模块,用于判断当前时间与预设的最小循环周期是否匹配,以判断当前时间是否满足预设的循环开始条件,若是,则记录当前循环次数,继而从周期消息栈中逐一识别出目标周期消息并执行,直至所述周期消息栈中的所有目标周期消息执行完毕;
其中,所述非周期消息的执行间隔、所述目标周期消息的执行间隔均为预设的第一消息间隔;所述预设的最小循环周期大于所有周期消息的执行时间之和;
所述周期消息栈中的各个周期消息包含有周期参数,所述目标周期消息是周期参数与所述当前循环次数相匹配的周期消息;所述目标周期消息的识别方式包括:读取所述周期消息的周期参数,若判断所述当前循环次数是所述周期参数的整数倍,则将该周期消息判定为目标周期消息。
6.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任一项所述消息调度方法的步骤。
7.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述消息调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111336804.5A CN113783773B (zh) | 2021-11-12 | 2021-11-12 | 一种消息调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111336804.5A CN113783773B (zh) | 2021-11-12 | 2021-11-12 | 一种消息调度方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113783773A CN113783773A (zh) | 2021-12-10 |
CN113783773B true CN113783773B (zh) | 2022-03-11 |
Family
ID=78956995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111336804.5A Active CN113783773B (zh) | 2021-11-12 | 2021-11-12 | 一种消息调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113783773B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115146217B (zh) * | 2022-09-01 | 2022-12-13 | 国网信息通信产业集团有限公司 | 一种解决综合能源系统数据循环计算的方法、系统及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103888293A (zh) * | 2014-02-25 | 2014-06-25 | 电子科技大学 | 多通道fc网络数据仿真系统的数据通道调度方法 |
CN104317764A (zh) * | 2014-10-10 | 2015-01-28 | 北京石竹科技股份有限公司 | 一种1553b总线异步消息的实时控制方法 |
CN106878132A (zh) * | 2017-02-16 | 2017-06-20 | 北京中航通用科技有限公司 | 基于周期及优先级的总线调度方法 |
CN110149259A (zh) * | 2019-05-09 | 2019-08-20 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于混合触发的gjb289a总线调度方法及装置 |
CN112114981A (zh) * | 2020-09-09 | 2020-12-22 | 天津津航计算技术研究所 | 一种基于链表的1553b总线消息调度方法 |
CN113347115A (zh) * | 2021-08-06 | 2021-09-03 | 北京国科天迅科技有限公司 | 消息处理方法、装置、电子设备及介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009075068A1 (ja) * | 2007-12-13 | 2009-06-18 | Mitsubishi Electric Corporation | 列車用通信システム、通信装置及び中継装置 |
CN109152008A (zh) * | 2017-06-15 | 2019-01-04 | 华为技术有限公司 | 一种消息发送方法及装置 |
-
2021
- 2021-11-12 CN CN202111336804.5A patent/CN113783773B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103888293A (zh) * | 2014-02-25 | 2014-06-25 | 电子科技大学 | 多通道fc网络数据仿真系统的数据通道调度方法 |
CN104317764A (zh) * | 2014-10-10 | 2015-01-28 | 北京石竹科技股份有限公司 | 一种1553b总线异步消息的实时控制方法 |
CN106878132A (zh) * | 2017-02-16 | 2017-06-20 | 北京中航通用科技有限公司 | 基于周期及优先级的总线调度方法 |
CN110149259A (zh) * | 2019-05-09 | 2019-08-20 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于混合触发的gjb289a总线调度方法及装置 |
CN112114981A (zh) * | 2020-09-09 | 2020-12-22 | 天津津航计算技术研究所 | 一种基于链表的1553b总线消息调度方法 |
CN113347115A (zh) * | 2021-08-06 | 2021-09-03 | 北京国科天迅科技有限公司 | 消息处理方法、装置、电子设备及介质 |
Non-Patent Citations (1)
Title |
---|
一种1553B总线上非周期消息传输的优化方法;田宇等;《科技与创新》;20171025(第20期);第100-102页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113783773A (zh) | 2021-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102790776B (zh) | 心跳连接归一处理方法、终端、服务器及通信系统 | |
CN111083161A (zh) | 数据传输的处理方法及装置、物联网设备 | |
JP2010028654A (ja) | 通信装置及びoamフレーム送信方法 | |
US20140143777A1 (en) | Resource Scheduling Method and Device | |
CN110019001A (zh) | 提升消息中间件消息追踪能力的方法、系统和监控模块 | |
CN113783773B (zh) | 一种消息调度方法及系统 | |
CN106571973A (zh) | 心跳包超时管理方法及系统 | |
CN109657005A (zh) | 一种分布式集群系统的数据缓存方法、装置及设备 | |
CN109787981A (zh) | 协议转换系统、方法、装置、设备和存储介质 | |
WO2016149945A1 (zh) | 一种生命周期事件的处理方法及vnfm | |
CN108366098A (zh) | 一种网络节点的数据交互方法及装置 | |
CN107426109B (zh) | 一种流量调度方法、vnf模块及流量调度服务器 | |
CN109257256A (zh) | 设备监控方法、装置、计算机设备及存储介质 | |
CN113157465B (zh) | 基于指针链表的消息发送方法及装置 | |
CN110233747B (zh) | 一种数据上报方法及云平台 | |
CN115499432A (zh) | 家庭终端算力资源管理系统及算力资源调度方法 | |
CN109495331A (zh) | 网管系统的系统监控方法及装置 | |
CN113672500A (zh) | 深度学习算法的测试方法、装置、电子装置和存储介质 | |
CN114584630B (zh) | 一种基于现场总线协议的通信方法及设备 | |
CN114979153B (zh) | 负载均衡方法、计算机设备及存储装置 | |
CN110740151A (zh) | 一种微服务调整方法、装置、服务器及计算机存储介质 | |
CN111787434B (zh) | 一种优化处理omci报文的方法 | |
CN117493022B (zh) | 处理器资源调度方法、装置及系统 | |
CN108633082A (zh) | 上行数据调度请求方法及装置 | |
CN113900835A (zh) | 一种保障异步通讯中消息顺序性消费的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 701, 7th Floor, Building 6, Courtyard 8, Kegu 1st Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing, 100176 Patentee after: Beijing Tasson Technology Ltd. Address before: Room 701, 7 / F, building 6, courtyard 8, KEGU 1st Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing 100176 Patentee before: BEIJING TASSON TECHNOLOGY Ltd. |