CN102455932B - 一种任务实例串行执行方法、装置及系统 - Google Patents
一种任务实例串行执行方法、装置及系统 Download PDFInfo
- Publication number
- CN102455932B CN102455932B CN201010516308.3A CN201010516308A CN102455932B CN 102455932 B CN102455932 B CN 102455932B CN 201010516308 A CN201010516308 A CN 201010516308A CN 102455932 B CN102455932 B CN 102455932B
- Authority
- CN
- China
- Prior art keywords
- task instances
- task
- scheduling time
- execution
- instances
- 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
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明适用于计算机软件领域,提供了一种任务实例串行执行方法、装置及系统,所述方法包括下述步骤:创建任务实例及执行队列;检测所述任务实例是否达到调度时间;将达到调度时间且存在互斥标识的任务实例存储至所述执行队列;提取所述存储至执行队列中的任务实例并执行。本发明通过在任务执行中加入调度时间和互斥标识,可有效利用系统资源和控制任务执行冲突,使得任务在并发性较强时仍然具有较好的串行执行能力。
Description
技术领域
本发明属于计算机软件领域,尤其涉及一种任务实例串行执行方法、装置及系统。
背景技术
在工作流实际应用场景中,有很多特殊场景,如:报表后台取数、生日预警、财务流程等场景,因流程需求或者数据的约束在执行过程中必须是串行处理的,但现有工作流任务处理规范中,并没有规定流程中的任务实例怎样去串行运行,在很多的工作流任务处理中没有定时调度的串行执行机制。
现有技术是将任务串行处理的逻辑放入任务实例各自的代码中去实现,这种方法加大了任务实例的复杂度和后续的维护成本,而且将任务串行处理的逻辑代码放入任务实例中后,破坏了任务实例原有功能的完整性和独立性。
发明内容
本发明实施例的目的在于提供一种任务实例串行执行方法,旨在解决现有技术中存在互斥关系任务的串行处理问题。
本发明实施例是这样实现的,一种任务实例串行执行方法,所述方法包括下述步骤:
步骤S101中,创建任务实例及执行队列;
步骤S102中,检测所述任务实例是否达到调度时间,是则执行步骤S104,否则执行步骤S103;
步骤S103中,创建等待队列,将未达到调度时间的任务实例存储至所述等待队列,并重复调用调度时间判断方法判断所述等待队列中的任务实例是否到达调度时间,直到所述等待队列中的任务实例达到调度时间为止;
步骤S104中,将达到调度时间且存在互斥标识的任务实例存储至所述执行队列,将达到调度时间但不存在互斥标识的任务实例注册互斥标识,并存储至所述执行队列;
步骤S105中,提取所述存储至执行队列中的任务实例并执行。
本发明实施例的另一目的在于提供一种任务实例串行执行装置,所述装置包括:
创建单元,用于创建任务实例及执行队列;
检测单元,用于检测所述任务实例是否达到调度时间;
处理单元,用于在所述检测单元检测结果为否时,创建等待队列,将未达到调度时间的任务实例存储至所述等待队列,并重复调用调度时间判断方法判断所述等待队列中的任务实例是否到达调度时间,直到所述等待队列中的任务实例达到调度时间为止;
存储单元,用于在所述检测单元检测结果为是时,将达到调度时间且存在互斥标识的任务实例存储至所述执行队列,将达到调度时间但不存在互斥标识的任务实例注册互斥标识,并存储至所述执行队列;以及
执行单元,用于提取所述存储至执行队列中的任务实例并执行。
本发明实施例的另一目的在于提供一种系统,所述系统包含上述任务实例串行执行装置。
本发明实施例通过在任务执行中加入调度时间,可以把一些系统资源耗费较大的任务的调度时间设置在系统比较空闲的时间段执行,有效的利用系统资源并提高执行效率,通过加入互斥标识,可有效控制任务执行冲突,使得任务在并发性较强时仍然具有较好的串行执行能力。
附图说明
图1是本发明实施例提供的任务实例串行执行方法的实现流程图;
图2是本发明实施例提供的任务实例串行执行方法的具体执行过程图;
图3是本发明实施例提供的任务实例串行执行装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例通过在任务执行中加入调度时间,可以把一些系统资源耗费较大的任务的调度时间设置在系统比较空闲的时间段执行,有效的利用系统资源并提高执行效率,通过加入互斥标识,可有效控制任务执行冲突,使得任务在并发性较强时仍然具有较好的串行执行能力。
图1示出了本发明实施例提供的任务串行执行方法的实现流程图,通过在任务执行中加入调度时间和互斥标识,可有效利用系统资源和控制任务执行冲突,提高串行处理的效率。该方法详述如下:
在步骤S101中,创建任务实例及执行队列。
在本发明实施例中,任务实例及执行队列是通过后台事务创建的,通过后台事务中的任务流程管理类201调用任务实例管理方法M1来启动任务实例的后台管理功能,通过后台事务中的后台服务管理类202调用创建方法M11来创建任务实例及执行队列,并将创建好的任务实例返回给后台服务管理类202(如图2所示)。其中,所述任务实例也可以通过后台接收用户输入的任务实例。所述执行队列用于接收达到调度时间并存在互斥标识的任务实例。
在步骤S102中,判断所述任务实例是否达到调度时间,是则执行步骤S104;否则执行步骤S103。
在本发明实施例中,后台事务中的后台服务管理类202获取创建好的任务实例后,通过调用调度时间判断方法M12来判断当前任务实例是否达到调度时间(如图2所示)。所述调度时间根据任务实例的优先权、消耗系统资源大小等要求设置,例如:将资源消耗较大的任务的调度时间设置为系统比较空闲的时间段来执行,有效的利用系统资源并提高执行效率。系统根据设置好的调度时间对任务实例进行判断,将未达到调度时间的任务实例存储至等待队列中;对达到调度时间的任务实例继续进行互斥标识符判断。
在步骤S103中,创建等待队列,将未达到调度时间的任务实例存储至所述等待队列中。
在本发明实施例中,等待队列通过后台事务中的后台服务管理类202调用创建方法M11来创建等待队列,等待队列用于存储未达到调度时间的任务实例。后台事务中的后台服务管理类202通过调用任务实例发送到等待队列方法M121,将未达到调度时间的任务实例发送到等待队列进行存储(如图2所示),对于等待队列中的任务实例,后台事务中的后台服务管理类202会重复调用调度时间判断方法M12判断所述任务实例是否到达调度时间,直到所述任务实例达到调度时间为止。在步骤S104中,判断达到调度时间的任务实例是否存在互斥标识,是则执行步骤S106,否则执行步骤S105。
在本发明实施例中,通过后台事务中的后台服务管理类202调用互斥标识判断方法M13来判断达到调度时间的任务实例是否存在互斥标识(如图2所示),如果所述任务实例存在互斥标识,则通过后台事务中的后台服务管理类202调用任务实例发送到执行队列方法M131将所述任务实例发送到执行队列进行存储,如果所述任务实例不存在互斥标识,通过后台事务中的后台服务管理类202调用任务实例标识符注册方法M132对达到调度时间且不存在互斥标识的任务实例进行互斥标识符注册,注册完后再通过调用任务实例发送到执行队列方法M1321将所述任务实例发送到执行队列进行存储,等待工作流引擎获取执行(如图2所示)。
在步骤S105中,对达到调度时间但不存在互斥标识的任务实例注册互斥标识,并将注册互斥标识后的任务实例存储至所述执行队列中
在步骤S106中,将达到调度时间且存在互斥标识的任务实例存储至所述执行队列中。
在步骤S107中,提取所述存储至执行队列中的任务实例并执行。
在本发明实施例中,存储至执行队列中的任务实例为达到调度时间且存在互斥标识的任务实例,所述达到调度时间且存在互斥标识的任务实例通过排队的形式存储在执行队列中,工作流引擎每次通过先后顺序提取执行队列中的任务实例而达到串行执行的效果。
图3示出了本发明实施例提供的任务串行执行装置的结构图,为了便于说明,仅示出了与本发明实施例相关的部分,该任务串行执行装置可以为内置于系统的软件单元、硬件单元或者软硬件结合单元,该任务串行执行装置包括创建单元31、存储单元32以及执行单元33。其中:
创建单元31,用于创建任务实例及执行队列。
在本发明实施例中,任务实例及执行队列是通过后台事务创建的,通过后台事务中的任务流程管理类201调用任务实例管理方法M1来启动任务实例的后台管理功能,通过后台事务中的后台服务管理类202调用创建方法M11创建任务实例及执行队列,并将创建好的任务实例返回给后台服务管理类202(如图2所示)。其中,所述任务实例也可以通过后台接收用户输入的任务实例。所述执行队列用于接收达到调度时间并存在互斥标识的任务实例。
检测单元32,用于检测所述任务实例是否达到调度时间。
存储单元33,用于将达到调度时间且存在互斥标识的任务实例存储至所述执行队列。
作为本发明的一个实施例,存储单元32进一步包括任务实例存储模块321,用于创建等待队列,将未达到调度时间的任务实例存储至所述等待队列中,当所述任务实例达到调度时间但不存在互斥标识时,对所述任务实例注册互斥标识,并将注册互斥标识后的任务实例存储至所述执行队列中,当所述任务实例达到调度时间且存在互斥标识时,将所述任务实例直接存储至执行队列中。
在本发明实施例中,等待队列通过后台事务中的后台服务管理类202调用创建方法M11来创建等待队列,等待队列用于存储未达到调度时间的任务实例。后台事务中的后台服务管理类202通过调用任务实例发送到等待队列方法M121,将未达到调度时间的任务实例发送到等待队列进行存储(如图2所示)。对达到调度时间的任务实例通过后台事务中的后台服务管理类202调用互斥标识判断方法M13来判断达到调度时间的任务实例是否存在互斥标识(如图2所示),如果所述任务实例存在互斥标识,则通过后台事务中的后台服务管理类202调用任务实例发送到执行队列方法M131将所述任务实例发送到执行队列进行存储,如果所述任务实例不存在互斥标识,通过后台事务中的后台服务管理类202调用任务实例标识符注册方法M132对达到调度时间且不存在互斥标识的任务实例进行互斥标识符注册,注册完后再通过调用任务实例发送到执行队列方法M1321将所述任务实例发送到执行队列进行存储,等待工作流引擎获取执行(如图2所示)。
调度时间根据每个任务实例的优先权、消耗系统资源大小等要求设置。
在本发明实施例中,任务实例存储模块331进一步包括调度时间检测模块3311,用于检测所述等待队列的任务实例是否达到调度时间。通过后台事务中的后台服务管理类202重复调用调度时间判断方法M12判断所述任务实例是否到达调度时间,直到所述任务实例达到调度时间为止。
执行单元34,用于提取所述存储至执行队列中的任务实例并执行。
在本发明实施例中,存储至执行队列中的任务实例为达到调度时间且存在互斥标识的任务实例,所述达到调度时间且存在互斥标识的任务实例通过排队的形式存储在执行队列中,工作流引擎每次通过先后顺序提取执行队列中的任务实例而达到串行执行的效果。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
本发明实施例通过在任务执行中加入调度时间,可以把一些系统资源耗费较大的任务的调度时间设置在系统比较空闲的时间段执行,有效的利用系统资源并提高执行效率,通过加入互斥标识,可有效控制任务执行冲突,使得任务在并发性较强时仍然具有较好的串行执行能力。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种任务实例串行执行方法,其特征在于,所述方法包括下述步骤:
步骤S101中,创建任务实例及执行队列;
步骤S102中,检测所述任务实例是否达到调度时间,是则执行步骤S104,否则执行步骤S103;
步骤S103中,创建等待队列,将未达到调度时间的任务实例存储至所述等待队列,并重复调用调度时间判断方法判断所述等待队列中的任务实例是否到达调度时间,直到所述等待队列中的任务实例达到调度时间为止;
步骤S104中,将达到调度时间且存在互斥标识的任务实例存储至所述执行队列,将达到调度时间但不存在互斥标识的任务实例注册互斥标识,并存储至所述执行队列;
步骤S105中,提取所述存储至执行队列中的任务实例并执行。
2.如权利要求1所述的方法,其特征在于,所述提取所述存储至执行队列中的任务实例并执行具体为:
按先后顺序提取并执行所述执行队列中的任务实例。
3.一种任务实例串行执行装置,其特征在于,所述装置包括:
创建单元,用于创建任务实例及执行队列;
检测单元,用于检测所述任务实例是否达到调度时间;
处理单元,用于在所述检测单元检测结果为否时,创建等待队列,将未达到调度时间的任务实例存储至所述等待队列,并重复调用调度时间判断方法判断所述等待队列中的任务实例是否到达调度时间,直到所述等待队列中的任务实例达到调度时间为止;
存储单元,用于在所述检测单元检测结果为是时,将达到调度时间且存在互斥标识的任务实例存储至执行队列,将达到调度时间但不存在互斥标识的任务实例注册互斥标识,并存储至所述执行队列;以及
执行单元,用于提取所述存储至执行队列中的任务实例并执行。
4.如权利要求3所述的装置,其特征在于,所述执行单元具体用于,按先后顺序提取并执行所述执行队列中的任务实例。
5.一种包含权利要求3所述的任务实例串行执行装置的系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010516308.3A CN102455932B (zh) | 2010-10-22 | 2010-10-22 | 一种任务实例串行执行方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010516308.3A CN102455932B (zh) | 2010-10-22 | 2010-10-22 | 一种任务实例串行执行方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102455932A CN102455932A (zh) | 2012-05-16 |
CN102455932B true CN102455932B (zh) | 2014-06-25 |
Family
ID=46039145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010516308.3A Active CN102455932B (zh) | 2010-10-22 | 2010-10-22 | 一种任务实例串行执行方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102455932B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164338B (zh) * | 2013-03-25 | 2016-03-30 | 华为技术有限公司 | 并发处理系统的模拟方法及装置 |
CN104407917B (zh) * | 2014-11-13 | 2018-10-16 | 中国建设银行股份有限公司 | 一种基于jms的交易处理方法及装置 |
CN107766143A (zh) * | 2016-08-16 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 数据处理管理系统和任务管理、任务调度方法及装置 |
CN106970874B (zh) * | 2017-01-22 | 2020-07-28 | 阿里巴巴集团控股有限公司 | 一种任务处理方法、装置及电子设备 |
CN106874094A (zh) * | 2017-02-17 | 2017-06-20 | 广州爱九游信息技术有限公司 | 定时任务处理方法、装置及计算设备 |
CN112181625A (zh) * | 2020-10-12 | 2021-01-05 | 联通智网科技有限公司 | 一种任务调度方法、系统、装置、存储介质和计算机设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1326567A (zh) * | 1998-11-16 | 2001-12-12 | 艾利森电话股份有限公司 | 处理系统调度 |
CN1818875A (zh) * | 2006-03-16 | 2006-08-16 | 浙江大学 | 嵌入式操作系统分组硬实时任务调度的实现方法 |
CN1960334A (zh) * | 2006-09-12 | 2007-05-09 | 华为技术有限公司 | 队列调度方法及装置 |
-
2010
- 2010-10-22 CN CN201010516308.3A patent/CN102455932B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1326567A (zh) * | 1998-11-16 | 2001-12-12 | 艾利森电话股份有限公司 | 处理系统调度 |
CN1818875A (zh) * | 2006-03-16 | 2006-08-16 | 浙江大学 | 嵌入式操作系统分组硬实时任务调度的实现方法 |
CN1960334A (zh) * | 2006-09-12 | 2007-05-09 | 华为技术有限公司 | 队列调度方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102455932A (zh) | 2012-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102455932B (zh) | 一种任务实例串行执行方法、装置及系统 | |
CN106802826B (zh) | 一种基于线程池的业务处理方法及装置 | |
CN102508716B (zh) | 任务控制装置和任务控制方法 | |
CN101604264B (zh) | 超级计算机的任务调度方法及系统 | |
US8516492B2 (en) | Soft partitions and load balancing | |
CN101385000A (zh) | 用于多处理器应用程序支持的系统及方法 | |
CN102779075A (zh) | 一种在多处理器核系统中进行调度的方法、装置及系统 | |
CN106776395B (zh) | 一种共享集群的任务调度方法及装置 | |
CN102662754A (zh) | 一种支持多场景的虚拟机调度装置和方法 | |
CN109376020B (zh) | 多区块链交互并发下的数据处理方法、装置及存储介质 | |
CN105446812A (zh) | 一种多任务调度配置方法 | |
CN103927244A (zh) | 一种基于动态代理实现的插件调度过程监控的方法 | |
CN109766131A (zh) | 基于多线程技术实现软件智能化自动升级的系统及方法 | |
CN108446141B (zh) | 一种Web前端插件及基于Web前端插件进行调度和通信的方法 | |
CN101634956B (zh) | 多核处理器消息调度方法及调度器 | |
CN101349975B (zh) | 一种在嵌入式操作系统上实现中断底半部机制的方法及装置 | |
CN115981808A (zh) | 调度方法、装置、计算机设备和存储介质 | |
CN101441568A (zh) | 智能卡及其操作系统开发方法 | |
CN102629216A (zh) | 云系统调度方法和系统 | |
CN103294874A (zh) | 用于电磁仿真计算系统FEKO的Web服务封装方法以及系统 | |
CN103870313A (zh) | 一种虚拟机任务调度方法及系统 | |
CN112988422A (zh) | 一种异步消息处理方法、装置、电子设备及存储介质 | |
CN105653552B (zh) | 一种结构化文档处理方法、装置及设备 | |
CN101140529A (zh) | 一种基于同步事件多路分离器的多事件处理方法及装置 | |
CN104956328A (zh) | 一种可重入资源调度方法、设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |