掌桥专利:专业的专利平台
掌桥专利
首页

一种任务调度的方法、装置、及计算机可读存储介质

文献发布时间:2023-06-19 13:45:04


一种任务调度的方法、装置、及计算机可读存储介质

技术领域

本申请涉及通信技术领域,特别是涉及一种任务调度的方法、装置、及 计算机可读存储介质。

背景技术

在一般设备的通讯应用层通常采用Modbus协议(Modbus是OSI模型应用 层协议),简单高效,用户使用方便,连接可靠;Modbus不但可以在局域网 上使用,还可以在广域网和因特网上使用,而且不使用专用硬件,全部采用 标准的以太网硬件,因此得到了大量的使用。随着现在工厂智能化的发展, 工厂的接入设备仪表规模不断增大,数据采集系统需要接入越来越多的设备, 这就相应的要求我们采集和读取数据规模越来越多,而目前各个通讯系统在 连接多个仪表或者控制设备时,采用的一般方案是将这些设备和仪表添加到 连接队列中,在依次遍历轮询的访问各个设备,从设备中读取数据。

由于目前通过轮询的方式写入或读取数据,处理完一个数据后对下个数 据再处理,导致设备效率低下。

鉴于上述技术,寻求一种快捷处理数据的方法,是本领域技术人员亟待 解决的问题。

发明内容

本申请的目的是提供一种任务调度的方法、装置、及计算机可读存储介 质。

为解决上述技术问题,本申请提供一种任务调度的方法,包括:

获取任务和任务信息,其中所述任务信息至少包括所述任务的优先级和 Modbus通讯信息参数;

根据所述任务的优先级和所述Modbus通讯信息参数将所述任务添加至 与设备对应的任务队列中;

通过Modbus协议将各所述任务队列中的所述任务分别发送至与所述任 务对应的所述设备。

优选的,在所述获取任务和任务信息之后还包括:

将所述任务放入主任务队列中。

优选的,所述任务信息还包括所述任务的采集时间,所述采集时间为采 集所述任务开始与完成采集的时间间隔。

优选的,所述任务的优先级与所述任务的所述采集时间成负相关关系。

优选的,所述根据所述任务的优先级和所述Modbus通讯信息参数将所述 任务添加至与设备对应的任务队列中包括:

通过贪心算法将所述主任务队列中优先级高的任务分配至所述任务队 列。

优选的,在所述通过Modbus协议将各所述任务队列中的所述任务分别发 送至与所述任务对应的设备之后还包括:

判断所述任务是否发送错误;

若是,将发送错误任务发送至所述主任务队列进行重新分配。

优选的,在所述将发送错误任务发送至所述主任务队列进行重新分配之 后还包括:

判断重新分配的任务的分配次数是否大于阈值;

若是,删除所述任务。

为解决上述技术问题,本申请还提供了一种任务调度的装置,包括:

获取模块,用于获取任务和任务信息,其中所述任务信息至少包括所述 任务的优先级和Modbus通讯信息参数;

添加模块,用于根据所述任务的优先级和所述Modbus通讯信息参数将所 述任务添加至与设备对应的任务队列中;

发送模块,用于通过Modbus协议将各所述任务队列中的所述任务分别发 送至与所述任务对应的设备。

为解决上述技术问题,本申请还提供了一种任务调度的装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述所述的任务调度的方法的 步骤。

为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述 计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时 实现上述所述的任务调度的方法的步骤。

本申请所提供的一种调度任务的方法,通过获取任务和任务信息,其中 任务信息至少包括任务的优先级和Modbus通讯信息参数,根据任务的优先级 和Modbus通讯信息参数将任务添加至与设备对应的任务队列中,通过 Modbus协议将各任务队列中的任务分别发送至与任务对应的设备中。可见, 此方法可以对多个任务同时进行处理,有效避免了通过轮询的方法对各个任 务进行依次访问,提高了设备的工作效率与用户的体验感,同时,此方法优 先将任务信息包含任务优先级高的任务和Modbus通讯信息参数的任务分配 到可以处理此任务的设备中,可以将优先级高的任务优先处理。

在此基础上,本申请还提供了一种任务调度的装置和计算机可读存储介 质,效果同上。

附图说明

为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图 做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例, 对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据 这些附图获得其他的附图。

图1为本申请实施例提供的一种任务调度的方法的流程图;

图2为本申请实施例提供的另一种任务调度的方法的流程图;

图3为本申请实施例提供的一种任务调度的装置的结构图;

图4为本申请另一实施例提供的任务调度的装置的结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而 不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出 创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。

本申请的核心是提供一种任务调度的方法、装置、及计算机可读存储介 质。

为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体 实施方式对本申请作进一步的详细说明。

图1为本申请实施例提供的一种任务调度的方法的流程图,如图1所示, 任务调度的方法包括:

S10:获取任务和任务信息,其中任务信息至少包括任务的优先级和 Modbus通讯信息参数。

S11:根据任务的优先级和所述Modbus通讯信息参数将任务添加至与设 备对应的任务队列中。

S12:通过Modbus协议将各任务队列中的任务分别发送至与任务对应的 设备。

可以理解的是,随着现在工厂智能化的发展,工厂的接入设备仪表规模 也不断增大,数据采集系统需要接入越来越多的设备,这就需要我们采集和 读取数据的规模越来越大,对于一些比较重要的数据可能需要急切的进行采 集,这就需要我们不能对所有数据采用同样的处理方法,因此就需要对任务 进行合理的调度。对于S10步骤来说,获取任务和任务信息,需要说明的是, 对任务信息不作限定,但任务信息至少要包含任务的优先级和Modbus通讯信 息参数,优先级的高低决定设备接收任务后对此任务是否进行优先处理,而Modbus通讯信息参数是此任务将会分配到哪个任务队列的标准。

另外,对于如何定义任务的优先级不作限定,可以为任务的采集时间长 短,例如任务的采集时间越长或越短,此任务的优先级就越高或越低,优先 级也可以为任务的大小,任务越大或越小,此任务的优先级就越高或越底, 本实施例对如何定义任务的优先级不作限定,只要能够使在满足此条件时, 优先对此任务进行处理即可。此外,在S11步骤中通过Modbus通讯信息参数 将任务添加至与设备对应的任务队列中,可以理解的是Modbus是一个分配任 务至哪个任务队列的标准,例如任务队列1接收任务的标准为条件A、B或C,若此任务符合三者中的任意一个,就会将此任务分配至任务队列1,值得注意 的是,若此任务同时满足两个或以上队列的条件,则将此任务分配至哪一个 都可以,在此基础上,对Modbus通讯信息不做限定,只需要能够使任务准确 分配至对应的任务队列即可。

对于S12步骤中提到的通过Modbus协议将各任务队列中的任务分别发送 至与任务对应的设备。可以理解的是,将任务分配到对应的任务队列后,还 需要将任务队列中的任务发送至任务队列对应的设备。此外,在S12步骤中 提到的设备指的是采集或读入数据的设备,对设备的数量不作限定,另外, 设备和任务队列一一对应,也就是说当前系统与几个设备连接就会有几条任 务队列,且,设备对应的任务队列只能传输此设备能处理的任务。

由此可见,本实施例所提供的一种调度任务的方法,通过获取任务和任 务信息,其中任务信息至少包括任务的优先级和Modbus通讯信息参数,根据 任务的优先级和Modbus通讯信息参数将任务添加至与设备对应的任务队列 中,通过Modbus协议将各任务队列中的任务分别发送至与任务对应的设备 中。可见,此方法可以对多个任务同时进行处理,有效避免了通过轮询的方 法对各个任务进行依次访问,提高了设备的工作效率与用户的体验感,同时, 此方法优先将任务信息包含任务优先级高的任务和Modbus通讯信息参数的 任务分配到可以处理此任务的设备中,可以将优先级高的任务优先处理。

在具体实施例中,通过获取用户的任务和任务信息,然后根据任务信息 将任务添加至与设备对应的任务队列中,这种方法可能有任务刚分类后,又 有新的任务出现,还需要继续分类,导致效率低下的情况。考虑到此情况的 发生,在原有步骤的基础上增加了一个新的步骤,图2为本申请实施例提供 的另一种任务调度的方法的流程图,如图2所示,除了步骤S10,S11,S12 之外,在S10之后还包括S13这一步骤。

S13:将任务放入主任务队列中。

在具体实施中,接收用户任务和任务信息之后,将任务添加至对应的队 列。容易导致在任务刚分类后,又有新的任务出现,还需要继续分类,因此 在获取用户任务和任务信息之后,将接收到的任务放入主队列中,可以理解 的是,将任务放到主队列中,这样提高了程序的执行性,避免程序依据每一 个任务读取造成堵塞。放入主队列后,根据任务信息对任务进行分类,减少 了系统的压力,提高了工作效率。

值得注意的是,任务队列的个数和设备保持一致,但主任务队列的个数 为一个,也就是说将任务统计到一个队列中,然后对任务进行分配。

由此可见,本实施例提供的在获取任务和任务信息之后将任务放入主任 务队列这一方法有效的提高了系统的工作效率,可以使系统更快的对用户的 任务进行分类。

在上述实施例的基础上,任务信息除了包括任务的优先级和Modbus通讯 信息参数,还包括任务的采集时间。可以理解的是,任务信息可以包含很多 信息,例如任务的优先级,Modbus通讯信息参数,任务的采集时间等,但至 少包含任务的优先级和Modbus通讯信息参数。

指的说明的是,任务的采集时间指的是设备对此任务采集的时间,具体 的为,任务A的开始采集的时间为T1,结束采集的时间为T2,则任务A的 采集时间为T2减T1的值。此外,任务的采集时间可以根据用户自己设定, 用户可以根据任务的实际情况对此任务采集的时间进行设置,当任务比较复 杂的时候,可以设置更长的时间进行处理。

由此可见,本实施例提供的任务信息包含任务的采集时间,可以更好的 对任务进行处理,可以根据任务的复杂程度对任务的采集时间进行设置,有 效提高了设备的工作效率,提高用户的体验感。

在上述实施例的基础上对任务的优先级进行限定,在具体实施中,优先 级的高低是设备对此任务是否优先处理的标准,而对于如何定义优先级也是 非常重要,可以通过任务的采集时间定义优先级,具体的为,任务的采集时 间越短,此任务执行的优先级就越高。用户可以设置任务的采集时间从而设 置成任务的优先级,在有急切处理的任务时,可以将此任务的采集时间调短, 这样此任务的优先级越高就可以对此任务进行优先处理。

值得注意的是,将任务的采集时间的长短设置成此任务的优先级仅仅为 一种优选的实施例,可以根据实际情况进行设置,对于别的方法去定义任务 的优先级,本实施例不再赘述。

由此可见,本实施例提供的定义优先级的方法,通过任务采集时间的长 短来得出执行此任务优先级的高低,设备可以根据任务的优先级高低来判断 是否优先处理此任务,有效的避免了急需处理的任务不能立刻处理这一问题, 有效提高了设备的工作效率,提高了用户的体验感。

在具体实施例中,将任务添加至设备对应的队列具体是通过贪心算法将 主任务队列中优先级高的任务分配至任务队列,所谓贪心算法是一种对某些 求最优解问题的更简单、更迅速的设计技术。贪心算法的特点是一步一步地 进行,常以当前情况为基础根据某个优化测度作最优选择,而不考虑各种可 能的整体情况,省去了为找最优解要穷尽所有可能而必须耗费的大量时间。 贪心算法采用自顶向下,以迭代的方法做出相继的贪心选择,每做一次贪心 选择,就将所求问题简化为一个规模更小的子问题,通过每一步贪心选择, 可得到问题的一个最优解。虽然每一步上都要保证能获得局部最优解,但由 此产生的全局解有时不一定是最优的,所以贪心算法不要回溯。而贪心算法 也存在一些问题,不能保证当前的解是最佳的,因为它是从局部出发,并没 有从全面进行考虑,而且贪心算法只能确定某些问题的可行性范围。

在本实施例贪心算法具体的为,通过获取主任务队列中时间最小的任务, 也就是优先级高的任务,得到这些任务之后,判断获取的任务数量是否大于 设置设备可处理任务的数量,如果是,则将任务分配至任务队列中,并将多 余的任务返回至主任务队列等待重新获取,如果否,则返回获取主任务队列 中时间最小的任务这一步骤。

另外,用户设置的任务采集时间一定比正常任务的采集时间短,可以理 解的是,用户想要急切处理的任务一定会比正常任务优先被贪心算法读取。 此外,贪心算法保证了每一次对主任务队里中的任务分配的数量和设定设备 可以处理的数量相同,有效的保证了设备的使用率。

值得注意的是,当用户没有急切想处理的任务时,也就是没有设置任务 的优先级时,贪心算法依旧运行,每个任务都有自己的采集时间,贪心算法 可以根据任务的采集时间对任务进行分配。

本实施例提供的通过贪心算法将主任务队列中的任务分配至任务队列, 此方法通过贪心算法可以得出当前最好的选择,可以更快的对用户的任务进 行分配,不会落下任务,提高了设备与系统的工作效率,提高了用户的体验 感。

在具体实施例中,有可能将任务分配至错误的设备,造成设备无法处理 此任务的问题出现,考虑到此情况的发生,在将任务从任务队列发送至任务 对应的设备这一步骤之后增加了一个步骤,如图2所示,在步骤S12之后还 包括:

S14:判断任务是否发送错误,若是,进入S15步骤。

S15:将发送错误的任务发送至主任务队列进行重新分配。

可以理解的是,在将任务从任务队列发送至任务对应的设备之后,可能 出现当前任务发送至不对应的设备,因此对当前任务是否发送错误进行检测。

对于S15步骤来说,将发送错误的任务发送至主任务队列进行重新分配, 值得注意是,这里发送错误的任务可以为此任务的通讯信息符合当前设备, 但不能被当前设备进行处理,也可以为在分配任务时,错误的将任务发送至 当前设备。

由此可见,本实施例提供的,在将任务发送至对应设备之后,对所发送 的任务进行判断是否发送错误,若发送错误,则将此任务发送至主任务队列 进行重新分配,此方法有效避免了设备误处理或不能处理任务的情况,提高 了设备的工作效率,提高了用户的体验感。

在上述实施例的基础上,将错误的任务发送至主任务队列进行重新分配, 可能会有此任务一直错误,一直分配的情况发生,考虑到此情况,在步骤S15 的基础上增加了新的步骤,如图2所示,除了S13,S14,S15之外还包括:

S16:判断重新分配的任务的分配次数是否大于阈值,若是,进入S17步 骤。

S17:删除任务。

可以理解的是,发送错误的任务可能一直错误,为了避免这种情况发生, 在原有步骤的基础上,进行判断重新分配的任务的分配次数是否大于阈值, 若是,则删除任务。

值得说明的是,对重新分配的任务进行判定,而不是对所有任务都判定, 此外,对阈值不作限定,可以为2,也可以为3,只需要满足此任务不能被当 前所有设备处理时,将此任务删除即可。

由此可见,本实施例提供的在发送错误任务至主任务队列进行重新分配 之后,对此任务的分配次数进行判断,若分配次数大于阈值,则说明此任务 不能被当前设备进行处理,则把任务删除,此方法有效避免了错误的任务占 用主任务队列的情况发生,提高了设备和系统的工作效率。

在上述实施例中,对于任务调度的方法进行了详细描述,本申请还提供 任务调度的装置对应的实施例。需要说明的是,本申请从两个角度对装置部 分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角 度。

上文详细描述了任务调度的方法对应的各个实施例,在此基础上,本申 请还公开与上述方法对应的任务调度的装置。图3为本申请实施例提供的一 种任务调度的装置的结构图。如图3所示,任务调度的装置包括:

获取模块10,用于获取任务和任务信息,其中任务信息至少包括任务的 优先级和Modbus通讯信息参数;

添加模块11,用于根据任务的优先级和Modbus通讯信息参数将任务添 加至与设备对应的任务队列中;

发送模块12,用于通过Modbus协议将各任务队列中的任务分别发送至 与任务对应的设备。

图4为本申请另一实施例提供的任务调度的结构图,如图4所示,任务 调度的装置包括:存储器20,用于存储计算机程序;

处理器21,用于执行计算机程序时实现如上述实施例中所提到的任务调 度的方法的步骤。

本实施例提供的任务调度的装置可以包括但不限于智能手机、平板电脑、 笔记本电脑或台式电脑等。

其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核 心处理器等。处理器21可以采用DSP(Digital Signal Processing,数字信号处理)、 FPGA(Field-Programmable Gate Array,现场可编程门阵列)、 PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实 现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状 态下的数据进行处理的处理器,也称CPU(CentralProcessing Unit,中央处理 器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一 些实施例中,处理器21可以在集成有GPU(Graphics Processing Unit,图像处理 器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中, 处理器21还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器 用于处理有关机器学习的计算操作。

存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储 介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失 性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存 储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加 载并执行之后,能够实现前述任一实施例公开的任务调度的方法的相关步骤。 另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方 式可以是短暂存储或者永久存储。其中,操作系统202可以包括Windows、Unix、 Linux等。数据203可以包括但不限于任务调度的方法的数据等。

在一些实施例中,任务调度的装置还可包括有显示屏22、输入输出接口 23、通信接口24、电源25以及通信总线26。

本领域技术人员可以理解,图4中示出的结构并不构成对任务调度的装 置限定,可以包括比图示更多或更少的组件。

最后,本申请还提供一种计算机可读存储介质对应的实施例。计算机可 读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方 法实施例(中记载的步骤。

可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并 作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。 基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部 分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机 软件产品存储在一个存储介质中,执行本申请各个实施例所述方法的全部或 部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁 碟或者光盘等各种可以存储程序代码的介质。

以上对本申请所提供的任务调度的方法进行了详细介绍。说明书中各个 实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不 同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装 置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之 处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说, 在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些 改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅 仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或 者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语 “包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括 一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没 有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所 固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素, 并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同 要素。

技术分类

06120113793102