一种任务调度管理方法、装置及电子设备与流程

文档序号:32206839发布日期:2022-11-16 04:54阅读:38来源:国知局
一种任务调度管理方法、装置及电子设备与流程

1.本发明涉及信息处理领域,尤其涉及一种任务调度管理方法、装置及电子设备。


背景技术:

2.目前,企业或个人在嵌入式linux应用开发中因开发人员不同,所开发的应用程序框架也不尽相同,主要存在以下几个问题:(1)应用程序框架在线程资源管理、业务逻辑处理等方面因开发人员不同而导致性能、稳定性各不相同的问题;(2)风格不统一问题,多进程项目中,因开发人员不同而编写的应用程序框架风格不同,导致代码阅读性降低;(3)很多应用程序框架包含了特定业务逻辑处理,通用性不高,导致框架不易于移植扩展和不易维护的问题。


技术实现要素:

3.本发明的目的是提供一种通用的应用程序开发框架,形成统一、简单高效的开发框架,使得开发人员能快速构建应用程序框架,大大提高程序开发效率。
4.为了实现上述发明目的,本发明实施例第一方面提供一种基于通用应用程序框架的任务调度管理方法,所述应用程序框架包括配置管理模块、主程序模块和业务子模块,所述方法包括:
5.在所述应用程序框架运行时,所述主程序模块通过所述配置管理模块设置程序相关的配置信息;
6.所述主程序模块根据所述配置信息创建线程池任务队列;
7.所述主程序模块基于所述线程池任务队列对所述业务子模块进行任务调度。
8.可选的,所述主程序模块基于所述线程池任务队列对所述业务子模块进行任务调度,包括:
9.获取所述线程池调度的当前状态,并判断所述线程池调度的当前状态是阻塞还是空闲;
10.根据所述线程池调度的当前状态对所述业务子模块进行任务调度。
11.可选的,根据所述线程池调度的当前状态对所述业务子模块进行任务调度,包括:
12.若所述线程池调度的当前状态是阻塞,则判断是否配置了阻塞退出程序;若配置有所述阻塞退出程序,则退出所述主程序;若未配置,则进入下一轮任务调度;
13.若所述线程池调度的当前状态是空闲,则判断所述业务子模块的执行状态;若所述业务子模块正在执行,则进入下一轮任务调度;若所述业务子模块未执行,则控制所述业务子模块业务执行当前任务,并更新所述业务子模块的执行状态。
14.可选的,所述配置信息包括最大线程数和程序执行间隔。
15.本发明实施例第二方面提供一种任务调度管理装置,包括:
16.配置管理模块,用于解析用户输入的命令行参数;
17.主程序模块,用于通过所述配置管理模块解析的命令行参数,设置程序相关的配
置信息,并根据所述配置信息创建线程池任务队列,基于所述线程池任务队列对业务子模块进行任务调度;
18.业务子模块,用于在所述主程序模块的任务调度下执行对应的任务。
19.可选的,所述装置包括:
20.定时器模块,用于处理定时任务;
21.日志模块,用于管理所述主程序模块和所述业务子模块产生的日志信息。
22.本发明实施例第三方面提供一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述方法的步骤。
23.本发明实施例第四方面提供一种电子设备,包括:
24.存储器,其上存储有计算机程序;
25.处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面所述方法的步骤。
26.本发明实施例中的一个或者多个技术方案,至少具有如下技术效果或者优点:
27.本发明实施例的方案中,所述应用程序框架包括配置管理模块、主程序模块和业务子模块,在所述应用程序框架运行时,所述主程序模块通过所述配置管理模块设置程序相关的配置信息;所述主程序模块根据所述配置信息创建线程池任务队列;所述主程序模块基于所述线程池任务队列对所述业务子模块进行任务调度。本方案提供了一种通用的应用程序开发框架,形成统一的开发框架和简单高效的业务逻辑处理,使得开发人员能快速构建应用程序框架,大大提高程序开发效率。
附图说明
28.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图:
29.图1是根据一示例性实施例示出的通用应用程序框架的框图;
30.图2是根据一示例性实施例示出的任务调度管理方法的流程图;
31.图3是根据一示例性实施例示出的快速创建应用程序框架的流程图;
32.图4是根据一示例性实施例示出的任务调度管理方法的另一流程示意图;
33.图5是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
34.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
35.本说明书中,首先对应用程序框架的各组成部分进行说明。
36.请参考图1,图1是根据一示例性实施例示出的通用应用程序框架的框图。该框架100包括以下几个组成部分。
37.配置管理模块101,主要负责命令行参数,即性能调优参数的解析。开发人员通过命令行参数可以设置日志等级、最大线程数、程序执行间隔等等。
38.主程序模块102,主要负责各个业务子模块的注册和反注册管理,以及基于线程池任务队列进行任务调度管理、程序执行管理和程序退出管理。
39.业务子模块103,主要负责任务执行、运行状态管理、模块信息管理。开发人员通过继承该业务子模块103进行业务逻辑处理。
40.定时器模块104,应用程序框架提供定时器管理功能。开发人员可以使用该接口处理定时任务逻辑。
41.日志模块105,应用程序框架提供日志等级接口,开发人员可以通过该接口打印日志管理。
42.本发明实施例中,还可以根据需要增加异常捕获处理模块,用于对应用程序框架中的异常状态进行捕获和处理。
43.本发明实施例中的应用程序框架可以应用在linux系统中,也可以应用在其他系统中,本发明对此不做限制。
44.请参考图2,图2是根据一示例性实施例示出的任务调度管理方法的流程图,该方法包括以下步骤。
45.步骤201,在所述应用程序框架运行时,所述主程序模块通过所述配置管理模块设置程序相关的配置信息。其中,配置信息可以包括日志等级、最大线程数和程序执行间隔等。
46.步骤202,所述主程序模块根据所述配置信息创建线程池任务队列。
47.步骤203,所述主程序模块基于所述线程池任务队列对所述业务子模块进行任务调度。
48.本发明的实施例中,通过提供一种通用的应用程序框架,并基于线程池任务队列对各个业务子模块进行任务调度,形成一种统一的开发框架和简单高效的业务逻辑处理,使得开发人员能快速构建应用程序框架,并根据具体需求设计业务逻辑处理模块,大大提高程序开发效率。
49.请参考图3,图3是根据一示例性实施例示出的快速创建应用程序框架的流程图,包括以下步骤。
50.步骤301,开发人员在主函数(main函数)入口处,创建应用程序框架的主程序模块,并将需要的命令行参数(主函数参数)传递给主程序模块。
51.传递给主程序模块命令行参数后,主程序模块会通过配置管理模块进行参数解析,并设置程序相关参数,包括日志等级、最大线程数、程序执行间隔等。
52.步骤302,开发人员将业务子模块注册到框架主程序进行管理,开发人员只需要关心子模块逻辑实现即可,使得开发人员可以根据具体需求设计业务逻辑处理模块,大大提高程序开发效率。
53.步骤303,一切准备就绪后,开发人员需要调用框架主程序执行函数启动任务调度管理,这样应用程序框架就开始运行。
54.请参考图4,图4是根据一示例性实施例示出的任务调度管理方法的另一流程示意图。该方法包括以下步骤。
55.步骤401,应用程序框架启动后,首先会根据配置信息创建线程池任务队列,然后便进入任务调度,进行业务子模块任务调度。其中,配置信息可以是人为设置的信息,如果没有设置,也可以使用应用程序框架的默认配置信息。配置信息可以包括最大线程数和程序执行间隔等。
56.步骤402,获取线程池调度的当前状态;
57.步骤403,判断线程池调度的当前状态是空闲还是阻塞;如果阻塞,则执行步骤404;如果空闲,则执行步骤405。
58.步骤404,判断是否配置了阻塞退出程序参数。如果配置了,则退出主程序;如果未配置,则进入下一轮任务调度。
59.步骤405,判断所述业务子模块的执行状态。如果业务子模块正在执行,则进入下一轮任务调度;如果业务子模块未执行,则执行步骤406。
60.步骤406,业务子模块执行子模块业务处理函数,并更新业务子任务的执行状态。
61.步骤407,退出主程序。
62.图5是根据一示例性实施例示出的一种电子设备500的框图。如图5所示,该电子设备500可以包括:处理器501,存储器502。该电子设备500还可以包括多媒体组件503,输入/输出(i/o)接口504,以及通信组件505中的一者或多者。
63.其中,处理器501用于控制该电子设备500的整体操作,以完成上述的任务调度管理方法中的全部或部分步骤。存储器502用于存储各种类型的数据以支持在该电子设备500的操作。多媒体组件503可以包括屏幕和音频组件。i/o接口504为处理器501和其他接口模块之间提供接口。通信组件505用于该电子设备500与其他设备之间进行有线或无线通信。
64.在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的任务调度管理方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器502,上述程序指令可由电子设备500的处理器501执行以完成上述的任务调度管理方法。
65.在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的任务调度管理方法的代码部分。
66.本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
67.本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
68.本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1