CN111310998A - 关键路径的生成方法、装置、电子设备和介质 - Google Patents
关键路径的生成方法、装置、电子设备和介质 Download PDFInfo
- Publication number
- CN111310998A CN111310998A CN202010091949.2A CN202010091949A CN111310998A CN 111310998 A CN111310998 A CN 111310998A CN 202010091949 A CN202010091949 A CN 202010091949A CN 111310998 A CN111310998 A CN 111310998A
- Authority
- CN
- China
- Prior art keywords
- job
- target
- jobs
- information
- historical
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
- G06Q10/047—Optimisation of routes or paths, e.g. travelling salesman problem
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06316—Sequencing of tasks or work
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Operations Research (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Educational Administration (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供了一种关键路径的生成方法,包括:获得第一批量作业集合的历史信息,其中,历史信息包括每个作业的历史运行信息和多个作业的历史前后项关系;基于历史信息,获得第二批量作业集合的当前信息,其中,当前信息包括每个作业的预计运行信息和多个作业的目标前后项关系;按照目标前后项关系,模拟运行第二批量作业集合,以获得每个作业的实际运行信息;以及基于每个作业的实际运行信息,生成第二批量作业的关键路径。本公开还提供了一种关键路径的生成装置,一种电子设备以及一种计算机可读存储介质。
Description
技术领域
本公开涉及数据处理领域,特别是涉及一种关键路径的生成方法、装置、电子设备和介质。
背景技术
当前的计算机数据处理模式可以分为联机处理模式和批量处理模式两种。批量处理模式在不需要用户交互的情况下,或在资源允许的情况下,都能按照计划运行,对海量数据进行集中处理的数据处理模式,通常大型的批量处理系统可以处理数万级别的作业量。缩短整体批量作业运行时间可以使得批量处理作业提早结束,减少批量处理作业和联机处理作业之间的冲突,以便后续的日间批量作业可以提早开始,并减轻日间批量处理作业时对联机处理作业的资源争夺,同时及时提供业务报表,为业务部门提供高水平的服务,为投产和业务推广等特殊日提供更大的投产时间窗口。
为了缩短整体批量作业的运行时间,在有限的计划时间内处理更多的批量作业,就要求批量程序具有强大的处理能力,结合并行批量的运行模式缩短批量处理作业所花费的时间,同时时刻关注批量窗口时间的变化趋势,及时分析变化趋势背后所隐藏的原因。由于整体批量作业运行时间由批量作业中关键作业组成的路径,即关键路径决定。因此,有效的优化方法是在测试前对关键路径进行优化,而如何预测优化后的关键路径以及优化效果具有重要的指导意义。
相关技术也提供了一些关键路径以及优化效果的预测方法,但是效果不佳。例如,无法预测在特殊日(一年一次的年终决算日或集中网购日)的批量处理作业的关键路径。在单独的关键路径作业优化和调整减少的时间往往要大于整个批量减少的时间的思想指导下,逐个分析次关键路径和浮动值小的作业来判断优化效果,不仅费时费力而且不准确。
发明内容
有鉴于此,为了解决现有技术无法预测在特殊日(一年一次的年终决算日或集中网购日)的批量处理作业的关键路径的技术问题。本公开提供了一种关键路径的生成方法、装置、电子设备及介质,为在特殊日的批量处理作业提供一种关键路径的预测方法,能够快速得出批量关键路径,以便相关技术人员可以及时掌握路径优化效果和存在的问题,节省时间,减少批量系统运行时的风险,保障企业的生产稳定与生产安全。
通过本公开提供的关键路径的生成方法,可以简单并且快速地预测出优化之后的关键路径和运行效果,按照批量作业的运行规律,提出模拟操作的方法,输入作业的历史运行时间以及与作业前后项关系,通过模拟逐个提交满足条件作业模拟运行,输出在最理想情况下(没有中断、资源充足)运行结果,生成关键路径和全量作业的运行情况。
为实现上述目的,本公开的一个方面提供了一种关键路径的生成方法,包括:获得第一批量作业集合的历史信息,其中,上述历史信息包括每个作业的历史运行信息和多个作业的历史前后项关系,基于上述历史信息,获得第二批量作业集合的当前信息,其中,上述当前信息包括上述每个作业的预计运行信息和上述多个作业的目标前后项关系,按照上述目标前后项关系,模拟运行上述第二批量作业集合,以获得上述每个作业的实际运行信息,以及基于上述每个作业的实际运行信息,生成上述第二批量作业的关键路径。
根据本公开的实施例,上述基于上述历史信息,获得第二批量作业集合的当前信息包括:基于上述历史信息,确定目标作业和非目标作业,其中,上述目标作业为上述多个作业中需要调整的作业,上述非目标作业为上述多个作业中不需要调整的作业,调整上述目标作业的历史前后项关系,以获得上述多个作业的目标前后项关系,基于上述目标作业的历史运行信息,获得上述目标作业的预计运行信息,以及将上述非目标作业的历史运行信息,作为上述非目标作业的预计运行信息。
根据本公开的实施例,上述基于上述目标作业的历史运行信息,获得上述目标作业的预计运行信息包括:基于上述目标作业的历史运行信息,获取上述目标作业在历史特定日的第一运行时长和在上述历史特定日的预设时间范围内的第二运行时长,获取上述目标作业在上述历史特定日的第一业务量和在上述历史特定日的预设时间范围内的第二业务量,获取上述目标作业在当前特定日的第三业务量和在上述当前特定日的上述预设时间范围内的第四业务量,基于上述第一业务量、上述第二业务量、上述第三业务量和上述第四业务量,确定业务增长率,基于上述第一运行时长、上述第二运行时长和上述业务增长率,确定上述目标作业的预计增长运行时长,以及基于获取的上述目标作业在上述当前特定日的第三运行时长和上述预计增长运行时长,获得上述目标作业的预计运行信息。
根据本公开的实施例,上述按照上述目标前后项关系,模拟运行上述第二批量作业集合,以获得上述每个作业的实际运行信息包括:从上述第二批量作业集合中的起始作业开始到结束作业为止,按照上述目标前后项关系,确定与上述每个作业对应的直接前项作业,获得与上述每个作业对应的直接前项作业的开始运行时间,基于与上述每个作业对应的直接前项作业的开始运行时间和预计运行时间,获得与上述每个作业对应的开始运行时间,以及将与上述每个作业对应的开始运行时间和预计运行时间,获得与上述每个作业对应的结束运行时间。
根据本公开的实施例,上述基于上述每个作业的实际运行信息,生成上述第二批量作业的关键路径包括:从上述结束作业开始到上述起始作业为止,基于上述每个作业的实际运行信息,确定与上述每个作业对应的直接前项作业中最晚结束的直接前项作业,以及基于最晚结束的直接前项作业,生成上述第二批量作业的关键路径。
根据本公开的实施例,上述方法还包括:在上述第二批量作业处理异常的情况下,确定已处理完成作业和多个未处理完成作业,获得每个未处理完成作业的历史运行信息和上述多个未处理完成作业的目标前后项关系,按照上述多个未处理完成作业的目标前后项关系,模拟运行上述多个未处理完成作业,以获得上述每个未处理完成作业的实际运行信息,以及基于上述每个未处理完成作业的实际运行信息,确定上述第二批量作业的剩余处理时间。
为实现上述目的,本公开的另一个方面提供了一种关键路径的生成装置,包括:第一获得模块,配置为获得第一批量作业集合的历史信息,其中,上述历史信息包括每个作业的历史运行信息和多个作业的历史前后项关系,第二获得模块,配置为基于上述历史信息,获得第二批量作业集合的当前信息,其中,上述当前信息包括上述每个作业的预计运行信息和上述多个作业的目标前后项关系,第三获得模块,配置为按照上述目标前后项关系,模拟运行上述第二批量作业集合,以获得上述每个作业的实际运行信息,以及生成模块,配置为基于上述每个作业的实际运行信息,生成上述第二批量作业的关键路径。
根据本公开的实施例,上述第二获得模块包括:确定子模块,配置为基于上述历史信息,确定目标作业和非目标作业,其中,上述目标作业为上述多个作业中需要调整的作业,上述非目标作业为上述多个作业中不需要调整的作业,第一获得子模块,配置为调整上述目标作业的历史前后项关系,以获得上述多个作业的目标前后项关系,第二获得子模块,配置为基于上述目标作业的历史运行信息,获得上述目标作业的预计运行信息,以及第三获得子模块,配置为将上述非目标作业的历史运行信息,作为上述非目标作业的预计运行信息。
根据本公开的实施例,上述第二获得子模块包括:第一获取单元,配置为基于上述目标作业的历史运行信息,获取上述目标作业在历史特定日的第一运行时长和在上述历史特定日的预设时间范围内的第二运行时长,第二获取单元,配置为获取上述目标作业在上述历史特定日的第一业务量和在上述历史特定日的预设时间范围内的第二业务量,第三获取单元,配置为获取上述目标作业在当前特定日的第三业务量和在上述当前特定日的上述预设时间范围内的第四业务量,第一确定单元,配置为基于上述第一业务量、上述第二业务量、上述第三业务量和上述第四业务量,确定业务增长率,第二确定单元,配置为基于上述第一运行时长、上述第二运行时长和上述业务增长率,确定上述目标作业的预计增长运行时长,以及第一获得单元,配置为基于获取的上述目标作业在上述当前特定日的第三运行时长和上述预计增长运行时长,获得上述目标作业的预计运行信息。
根据本公开的实施例,上述第三获得模块包括:第一确定子模块,配置为从上述第二批量作业集合中的起始作业开始到结束作业为止,按照上述目标前后项关系,确定与上述每个作业对应的直接前项作业,第四获得子模块,配置为获得与上述每个作业对应的直接前项作业的开始运行时间,第五获得子模块,配置为基于与上述每个作业对应的直接前项作业的开始运行时间和预计运行时间,获得与上述每个作业对应的开始运行时间,以及第六获得子模块,配置为将与上述每个作业对应的开始运行时间和预计运行时间,获得与上述每个作业对应的结束运行时间。
根据本公开的实施例,上述生成模块包括:第二确定子模块,配置为从上述结束作业开始到上述起始作业为止,基于上述每个作业的实际运行信息,确定与上述每个作业对应的直接前项作业中最晚结束的直接前项作业,以及生成子模块,配置为基于最晚结束的直接前项作业,生成上述第二批量作业的关键路径。
根据本公开的实施例,上述装置还包括:第一确定模块,配置为在上述第二批量作业处理异常的情况下,确定已处理完成作业和多个未处理完成作业,第四获得模块,配置为获得每个未处理完成作业的历史运行信息和上述多个未处理完成作业的目标前后项关系,第五获得模块,配置为按照上述多个未处理完成作业的目标前后项关系,模拟运行上述多个未处理完成作业,以获得上述每个未处理完成作业的实际运行信息,以及第二确定模块,配置为基于上述每个未处理完成作业的实际运行信息,确定上述第二批量作业的剩余处理时间。
为实现上述目的,本公开的另一方面提供了一种电子设备,包括:一个或多个处理器,存储器,用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上所述的方法。
为实现上述目的,本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,上述指令在被执行时用于实现如上所述的方法。
为实现上述目的,本公开的另一方面提供了一种计算机程序,上述计算机程序包括计算机可执行指令,上述指令在被执行时用于实现如上所述的方法。
由上可见,与现有技术相比,本公开提供的关键路径的生成方法及其装置,通过批量作业的运行规律,提出模拟操作的方法,输入批量作业集合中每个作业的历史运行信息以及与作业之间的前后项关系,通过模拟运行,逐个提交满足条件作业,输出在最理想情况下(没有中断、资源充足)运行结果,最终生成关键路径和全量作业的运行情况,可以至少部分地克服相关技术中无法预测在特殊日(一年一次的年终决算日或集中网购日)的批量处理作业的关键路径的技术问题,并因此可以实现简单并且快速地预测出优化之后的关键路径和运行效果的技术效果。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了适用于本公开实施例的关键路径的生成方法和装置的应用场景;
图2示意性示出了根据本公开实施例的关键路径的生成方法的流程图;
图3示意性示出了根据本公开实施例的获得目标作业的预计运行信息的流程图;
图4示意性示出了根据本公开另一实施例的关键路径的生成方法的流程图;
图5示意性示出了根据本公开实施例的关键路径的生成装置的框图;
图6示意性示出了根据本公开另一实施例的关键路径的生成装置的框图;
图7示意性示出了根据本公开另一实施例的关键路径的生成装置的框图;以及
图8示意性示出了根据本公开实施例的适于实现上文描述的关键路径的生成方法和装置的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了上述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
为了缩短整体批量作业的运行时间,在有限的计划时间内处理更多的批量作业,就要求批量程序具有强大的处理能力,结合并行批量的运行模式缩短批量处理作业所花费的时间,同时时刻关注批量窗口时间的变化趋势,及时分析变化趋势背后所隐藏的原因。由于整体批量作业运行时间由批量作业中关键作业组成的路径,即关键路径决定。因此,有效的优化方法是在测试前对关键路径进行优化,而如何预测优化后的关键路径以及优化效果具有重要的指导意义。
鉴于此,本公开的实施例提供了一种关键路径的生成方法、装置、电子设备和计算机可读存储介质。其中,关键路径的生成方法包括:首先,获得第一批量作业集合的历史信息,历史信息包括每个作业的历史运行信息和多个作业的历史前后项关系。接着,基于历史信息,获得第二批量作业集合的当前信息,当前信息包括每个作业的预计运行信息和多个作业的目标前后项关系。然后,按照目标前后项关系,模拟运行第二批量作业集合,以获得每个作业的实际运行信息。最后,基于每个作业的实际运行信息,生成第二批量作业的关键路径。本公开通过批量作业的运行规律,提出模拟操作的方法,输入批量作业集合中每个作业的历史运行信息以及与作业之间的前后项关系,通过模拟运行,逐个提交满足条件作业,输出在最理想情况下(没有中断、资源充足)运行结果,最终生成关键路径和全量作业的运行情况,可以至少部分地克服相关技术中无法预测在特殊日(一年一次的年终决算日或集中网购日)的批量处理作业的关键路径的技术问题,并因此可以实现简单并且快速地预测出优化之后的关键路径和运行效果的技术效果。
图1示意性示出了适用于本公开实施例的关键路径的生成方法和装置的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的应用场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,在该应用场景100中,第一批量作业集合110和第二批量作业集合120包括多个作业,例如作业111、作业112、作业113以及作业114。不同的是,第一批量作业集合110中多个作业的历史前后项关系和第二批量作业集合120中多个作业的目标前后项关系不同。
具体地,在第一批量作业集合110中,多个作业的历史运行顺序依次为作业111、作业112、作业113和作业114。其中,头(START)作业111仅有后项作业112,收口(END)作业114仅有前项作业113,除头作业和收口作业之外的其他作业(例如,作业112和作业113),既有前项作业又有后项作业,作业112的前项作业为作业111,后项作业为作业113,作业113的前项作业为作业112,后项作业为114。而在第二批量作业集合120中,多个作业的目标运行顺序依次为作业111、作业113、作业112和作业114。其中,头(START)作业111仅有后项作业112,收口(END)作业114仅有前项作业113,除头作业和收口作业之外的其他作业(例如,作业112和作业113),既有前项作业又有后项作业,作业113的前项作业为作业111,后项作业为作业112,作业112的前项作业为作业113,后项作业为114。
根据本公开提供的关键路径生成方法,基于第一批量作业集合110中多个作业的历史运行信息和历史前后项关系,可以获得第二批量作业集合120中多个作业的预计运行信息和目标前后项关系,按照目标前后项关系,模拟运行第二批量作业集合120中的多个作业,可以获得每个作业的实际运行信息,根据每个作业的实际运行信息,可以最终确定关键作业,由关键作业生成关键路径130,即关键路径130上的作业都是关键作业。
需要说明的是,图1中所示的第一批量作业集合110和第二批量作业集合120包括的作业的数量和前后项关系仅是示意性的,并不是对作业数量和前后项关系的限定。在实际场景中,批量作业集合中多个作业的前后项关系要复杂的多,例如,某个作业包括多个后项作业,本公开对此不做限定。
以下参考附图2至图4并结合具体实施例详细阐述本公开。
图2示意性示出了根据本公开实施例的关键路径的生成方法的流程图。
如图2所示,该方法包括操作S210~操作S240。
在操作S210,获得第一批量作业集合的历史信息,历史信息包括每个作业的历史运行信息和多个作业的历史前后项关系。
根据本公开的实施例,第一批量作业集合包括多个作业,历史前后项关系用于表征多个作业之间的历史运行顺序,即第一批量作业集合中多个作业的排程。对任一个作业而言,在其之前运行的作业称之为该作业的前项作业,在其之后运行的作业称之为该作业的后项作业。历史运行信息包括但不限于开始运行时间、结束运行时间、历史运行时间和历史浮动时间。其中,结束运行时间减去开始运行时间可以确定出历史运行时间。使用多个作业的历史前后项关系、每个作业的开始运行时间、结束运行时间、历史运行时间作为关键路径算法的输入信息,计算可以得到每个作业的历史浮动时间,其中历史浮动时间为0的作业为主关键路径作业,历史浮动时间小于一定值的作业为次关键路径作业。在本公开中,可以将每个作业的历史运行情况(开始运行时间、结束运行时间和历史运行时间)和历史浮动时间保存在历史数据库中,以备后续使用。
在操作S220,基于所述历史信息,获得第二批量作业集合的当前信息,当前信息包括每个作业的预计运行信息和多个作业的目标前后项关系。
根据本公开的实施例,对第一批量作业集合中的多个作业进行一系列优化和排程调整之后,可以得到第二批量作业集合。如何在测试前预估新的关键路径和优化效果是非常重要和有意义的。本公开就是预测调整后的第二批量作业集合的关键路径。优化可以包括但不限于调整作业排程、拆分、程序修改中的至少一项。
作为一种可选的实施例,基于历史信息,可以对浮动时间为0的主关键路径的作业进行优化,也可以对浮动时间为0的主关键路径的作业以及浮动时间小于一定值的次关键路径的作业进行优化。对主关键路径的作业的优化,或者对主关键路径的作业的优化以及对次关键路径的作业的优化,将导致关键路径发生变化,使得优化的作业对应的历史运行信息发生变化。因此,在对第一批量作业集合进行优化和调整之后,获得第二批量作业集合的当前信息。
在本公开中,目标前后项关系用于表征多个作业之间的调整后的目标运行顺序,即第二批量作业集合中多个作业的排程。对任一个作业而言,在其之前运行的作业称之为该作业的前项作业,在其之后运行的作业称之为该作业的后项作业。当前运行信息包括但不限于开始运行时间、结束运行时间和预计运行时间。
在操作S230,按照目标前后项关系,模拟运行第二批量作业集合,以获得每个作业的实际运行信息。
根据本公开的实施例,按照目标前后项关系,可以确定出第二批量作业集合的起始作业(也称为头作业)和结束作业(也称为收口作业)。实际运行信息包括但不限于每个作业的开始运行时间、结束运行时间和实际运行时间。
在操作S240,基于每个作业的实际运行信息,生成第二批量作业集合的关键路径。
根据本公开的实施例,在第二批量作业集合中的多个作业都模拟运行完成之后,从结束作业反向扫描其前项作业中最晚结束的作业,直到起始作业,可以直接生成关键路径。
作为一种可选的实施例,也可以根据相关技术中提供的关键路径的算法,基于每个作业的实际运行信息,生成关键路径,本公开在此不做赘述。
本公开的实施例,通过批量作业的运行规律,提出模拟操作的方法,输入第二批量作业集合中每个作业的历史运行信息以及与多个作业的前后项关系,通过逐个提交作业模拟运行,输出在最理想情况下(没有中断、资源充足)运行结果,生成关键路径和全量作业的运行情况,可以至少部分地克服相关技术中无法预测在特殊日(一年一次的年终决算日或集中网购日)的批量处理作业的关键路径的技术问题,并因此可以实现简单并且快速地预测出优化之后的关键路径和运行效果的技术效果。
根据本公开的实施例,前述操作S220(所述基于所述历史信息,获得第二批量作业集合的当前信息)包括:基于所述历史信息,确定目标作业和非目标作业,其中,所述目标作业为所述多个作业中需要调整的作业,所述非目标作业为所述多个作业中不需要调整的作业;调整所述目标作业的历史前后项关系,以获得所述多个作业的目标前后项关系;基于所述目标作业的历史运行信息,获得所述目标作业的预计运行信息;以及将所述非目标作业的历史运行信息,作为所述非目标作业的预计运行信息。
根据本公开的实施例,可以基于历史信息中的浮动时间,将浮动时间为0的作业确定为目标作业,也可以将浮动时间为0以及浮动时间小于一定值的作业确定为目标作业。
在本公开中,目标作业调整后,历史运行信息发生变化。因此,需要获得目标作业的预计运行信息。非目标作业未调整,历史运行信息未发生变化。因此,可以将非目标作业的历史运行信息作为预计运行时间。
通过本公开的实施例,基于第一批量作业集合的历史信息,获得第二批量作业集合的当前信息,可以基于不同的应用场景,在测试之前实现对关键路径的优化和调整。
对于批量优化后运行效果,其作业修改量相对较小,修改的运行时间可以直接按照优化的内容进行评估。对于特殊日批量预估,例如年终决算、集中网购日涉及的批量运行时间变化较大,需综合考虑业务量推导得出,业务量预估可由累计业务量变动进行确认,集中网购日数据可以通过历年增幅拟合推导或者合作方直接提供。
作为一种可选的实施例,所述基于所述目标作业的历史运行信息,获得所述目标作业的预计运行信息包括:基于所述目标作业的历史运行信息,获取所述目标作业在历史特定日的第一运行时长和在所述历史特定日的预设时间范围内的第二运行时长;获取所述目标作业在所述历史特定日的第一业务量和在所述历史特定日的预设时间范围内的第二业务量;获取所述目标作业在当前特定日的第三业务量和在所述当前特定日的所述预设时间范围内的第四业务量;基于所述第一业务量、所述第二业务量、所述第三业务量和所述第四业务量,确定业务增长率;基于所述第一运行时长、所述第二运行时长和所述业务增长率,确定所述目标作业的预计增长运行时长;以及基于获取的所述目标作业在所述当前特定日的第三运行时长和所述预计增长运行时长,获得所述目标作业的预计运行信息。
图3示意性示出了根据本公开实施例的获得目标作业的预计运行信息的流程图。
如图3所示,该方法包括操作S310~操作S330。
在操作S310,获取特定日期的批量运行数据。
根据本公开的实施例,特定日期可以是一年一次的年终决算日,也可以是集中网购日,由于批量处理数据突增,已无法预估出关键路径。因此,本公开借助业务量的变动情况,获得特定日期批量作业集合的预计运行信息。
在操作S320,获取业务量历史数据和预估数据。
在操作S330,基于作业运行时间预估模型计算时间。
具体实施时,作业运行时间预估模型可以如下所示:
Ct=Mt+H
其中,H表示预估运行时间增长量,Nt为最近一次特殊日批量运行时间(例如去年12月31日批量),Ot为最近一次特殊日批量邻近日批量运行时间(例如去年12月30日批量),Ns为最近一次特殊日业务量(例如去年12月31日业务量),Os为最近一次特殊日批量邻近日业务量(例如去年12月30日业务量),Cs为预估日业务量,Ms为近期日期业务量,Ct为预估日批量运行时间,Mt为近期日期运行时间。
为例便于理解,下文将以特定日为11月11日为例说明上述作业运行时间预估模型的具体算法。
去年11月11日的业务量历史数据为0.74亿笔,去年11月10日的业务量历史数据为0.21亿笔,业务量的历史涨幅数据为0.53(0.74-0.21=0.53)亿笔。预计今年11月11日的业务量预估数据为1.20亿笔,当前日期的业务量为0.31亿笔,当前预计增长业务量为0.89(1.20-0.31=0.89)亿笔,可以得出业务量的增长倍率为0.89/0.53=1.67倍。
获取去年11月11日和11月10日的历史运行时间,将两者时间相同的作业进行对比,为屏蔽掉作业增长较少的无关作业,需选择有一定增长作业,并计算增长时间,将增长时间乘以1.67即为批量作业集合的预计增长运行时间,将获取到的当前日期的作业运行时间加上预估增长时间为预计运行时间。
根据本公开的实施例,前述操作S230(所述按照所述目标前后项关系,模拟运行所述第二批量作业集合,以获得所述每个作业的实际运行信息)包括:从所述第二批量作业集合中的起始作业开始到结束作业为止,按照所述目标前后项关系,确定与所述每个作业对应的直接前项作业;获得与所述每个作业对应的直接前项作业的开始运行时间;基于与所述每个作业对应的直接前项作业的开始运行时间和预计运行时间,获得与所述每个作业对应的开始运行时间;以及将与所述每个作业对应的开始运行时间和预计运行时间,获得与所述每个作业对应的结束运行时间。
在本公开中,从起始作业开始,初始化起始作业的开始运行时间,遍历模拟每个作业的提交动作,根据每个作业的直接前项作业对应的预计运行时间,可以获得每个作业对应的结束运行时间。
需要说明的是,对起始作业而言,其直接后项作业可以包括一个作业,也可以包括多个作业。在其直接后项作业包括多个作业的情况下,可以广度优先遍历每个作业,而与每个作业对应的开始运行时间为起始作业的开始运行时间与起始作业的预计运行时间之和,与每个作业对应的结束运行时间为对应的开始运行时间与预计运行时间之和。广度优先遍历所有作业之后,可以获得每个作业的实际运行信息。
通过本公开的实施例,可以方便快速的通过模拟运行获得每个作业的实际运行信息,给关键路径的生成提供数据基础。
根据本公开的实施例,前述操作S240(所述基于所述每个作业的实际运行信息,生成所述第二批量作业的关键路径)包括:从所述结束作业开始到所述起始作业为止,基于所述每个作业的实际运行信息,确定与所述每个作业对应的直接前项作业中最晚结束的直接前项作业;以及基于最晚结束的直接前项作业,生成所述第二批量作业的关键路径。
通过本公开的实施例,根据每个作业的实际运行信息,可以简单快速生成关键路径,可以至少部分克服相关技术中关键路径算法繁琐,计算效率低的技术问题。
根据本公开的实施例,在获得每个作业的实际运行信息之后,可以快速生成关键路径。具体实施时,可以从结束作业开始,反向扫描结束作业的直接前项作业,在结束作业包括多个直接前项作业的情况下,从多个直接前项作业中选出最晚结束的直接前项作业,确定为关键作业。然后,再反向扫描直接前项作业的直接前项作业,确定关键作业。以此类推,直到反向扫描到起始作业位置。多个关键作业形成的路径即为关键路径。
基于同一发明构思,本公开还提供了在批量无法按照预期完成,快速预测剩余作业还需多久结束的方法。在系统需要升级投产时,需要等待批量结束后的时间窗口,在预计时间内批量无法完成时,需要决策继续等待或立即停止批量,判断的重要依据是预测批量还有多久结束。
根据本公开的实施例,所述方法除了包括前述操作S210~操作S240之外,还包括:在所述第二批量作业处理异常的情况下,确定已处理完成作业和多个未处理完成作业;获得每个未处理完成作业的历史运行信息和所述多个未处理完成作业的目标前后项关系;按照所述多个未处理完成作业的目标前后项关系,模拟运行所述多个未处理完成作业,以获得所述每个未处理完成作业的实际运行信息;以及基于所述每个未处理完成作业的实际运行信息,确定所述第二批量作业的剩余处理时间。
具体实施时,可以在第二批量作业集合无法被正常批量处理的情况下,获取第二批量作业集合的当前生产运行情况,主要包括已完成的作业。从历史数据中获取同时期某一天的作业清单A和其历史运行时间,获取已经结束的作业清单B,比对两份作业清单,将清单A中包含清单B作业运行时间设置为0,然后基于多个作业的前后项关系以及作业清单A,通过模拟运行,获得历史运行信息,基于历史运行信息,可以生成关键路径,其关键路径时间就是未处理的作业需要执行的时间,关键路径上运行时间为0的作业为已运行完成作业。
图4示意性示出了根据本公开另一实施例的关键路径的生成方法的流程图。
如图4所示,该方法包括操作S410~操作S470。
在操作S410,作业初始化。为批量作业集合中的每个作业设置一个数据结构。数据结构可以包括但不限于作业名称、直接前项作业(集)、直接后项作业(集)、开始时间、结束时间、运行时间、状态(是否已运行)。
在操作S420,加载作业前后项关系和作业的运行时间。填充作业名称、作业运行时间和直接前项作业(集)和后项集。对历史数据库中不存在新作业,需手工输入预估时间或者统一定义默认时间。
操作S430,计算头作业。从头作业START开始,模拟作业提交动作,初始化头作业的开始时间,根据运行时间,计算作业结束时间,修改状态为已运行。
在操作S440,广度优先遍历已运行作业的后项作业。遍历直接后项集中的作业B和C。
在操作S450,判断作业B和C对应的前项是否均为已运行状态。如已运行,则执行操作S460。
在操作S460,修改作业B和C的开始时间、结束时间(开始时间+运行时间),修改运行状态。
在操作S470,反复根据广度优先策略逐层访问各个作业,直到收口作业END为完成状态。
图5示意性示出了根据本公开实施例的关键路径的生成装置的框图。
如图5所示,该装置500包括第一获得模块500、第二获得模块510、第三获得模块530以及生成模块540。
第一获得模块500,配置为例如执行前述操作S210,获得第一批量作业集合的历史信息,其中,前述历史信息包括每个作业的历史运行信息和多个作业的历史前后项关系。
第二获得模块510,配置为例如执行前述操作S220,基于前述历史信息,获得第二批量作业集合的当前信息,其中,前述当前信息包括前述每个作业的预计运行信息和前述多个作业的目标前后项关系。
第三获得模块530,配置为例如执行前述操作S230,按照前述目标前后项关系,模拟运行前述第二批量作业集合,以获得前述每个作业的实际运行信息。
生成模块540,配置为例如执行前述操作S240,基于前述每个作业的实际运行信息,生成前述第二批量作业的关键路径。
本公开的实施例,通过批量作业的运行规律,提出模拟操作的方法,输入第二批量作业集合中每个作业的历史运行信息以及与多个作业的前后项关系,通过逐个提交作业模拟运行,输出在最理想情况下(没有中断、资源充足)运行结果,生成关键路径和全量作业的运行情况,可以至少部分地克服相关技术中无法预测在特殊日(一年一次的年终决算日或集中网购日)的批量处理作业的关键路径的技术问题,并因此可以实现简单并且快速地预测出优化之后的关键路径和运行效果的技术效果。
根据本公开的实施例,前述第二获得模块510包括:确定子模块,配置为基于前述历史信息,确定目标作业和非目标作业,其中,前述目标作业为前述多个作业中需要调整的作业,前述非目标作业为前述多个作业中不需要调整的作业;第一获得子模块,配置为调整前述目标作业的历史前后项关系,以获得前述多个作业的目标前后项关系;第二获得子模块,配置为基于前述目标作业的历史运行信息,获得前述目标作业的预计运行信息;以及第三获得子模块,配置为将前述非目标作业的历史运行信息,作为前述非目标作业的预计运行信息。
通过本公开的实施例,基于第一批量作业集合的历史信息,获得第二批量作业集合的当前信息,可以基于不同的应用场景,在测试之前实现对关键路径的优化和调整。
根据本公开的实施例,前述第二获得子模块包括:第一获取单元,配置为基于前述目标作业的历史运行信息,获取前述目标作业在历史特定日的第一运行时长和在前述历史特定日的预设时间范围内的第二运行时长;第二获取单元,配置为获取前述目标作业在前述历史特定日的第一业务量和在前述历史特定日的预设时间范围内的第二业务量;第三获取单元,配置为获取前述目标作业在当前特定日的第三业务量和在前述当前特定日的前述预设时间范围内的第四业务量;第一确定单元,配置为基于前述第一业务量、前述第二业务量、前述第三业务量和前述第四业务量,确定业务增长率;第二确定单元,配置为基于前述第一运行时长、前述第二运行时长和前述业务增长率,确定前述目标作业的预计增长运行时长;以及第一获得单元,配置为基于获取的前述目标作业在前述当前特定日的第三运行时长和前述预计增长运行时长,获得前述目标作业的预计运行信息。
根据本公开的实施例,前述第三获得模块530包括:第二确定子模块,配置为从前述第二批量作业集合中的起始作业开始到结束作业为止,按照前述目标前后项关系,确定与前述每个作业对应的直接前项作业;第四获得子模块,配置为获得与前述每个作业对应的直接前项作业的开始运行时间;第五获得子模块,配置为基于与前述每个作业对应的直接前项作业的开始运行时间和预计运行时间,获得与前述每个作业对应的开始运行时间;以及第六获得子模块,配置为将与前述每个作业对应的开始运行时间和预计运行时间,获得与前述每个作业对应的结束运行时间。
通过本公开的实施例,可以方便快速的通过模拟运行获得每个作业的实际运行信息,给关键路径的生成提供数据基础。
根据本公开的实施例,前述生成模块540包括:第三确定子模块,配置为从前述结束作业开始到前述起始作业为止,基于前述每个作业的实际运行信息,确定与前述每个作业对应的直接前项作业中最晚结束的直接前项作业;以及生成子模块,配置为基于最晚结束的直接前项作业,生成前述第二批量作业的关键路径。
通过本公开的实施例,根据每个作业的实际运行信息,可以简单快速生成关键路径,可以至少部分克服相关技术中关键路径算法繁琐,计算效率低的技术问题。
根据本公开的实施例,前述装置还包括:第一确定模块,配置为在前述第二批量作业处理异常的情况下,确定已处理完成作业和多个未处理完成作业;第四获得模块,配置为获得每个未处理完成作业的历史运行信息和前述多个未处理完成作业的目标前后项关系;第五获得模块,配置为按照前述多个未处理完成作业的目标前后项关系,模拟运行前述多个未处理完成作业,以获得前述每个未处理完成作业的实际运行信息;以及第二确定模块,配置为基于前述每个未处理完成作业的实际运行信息,确定前述第二批量作业的剩余处理时间。
图6示意性示出了根据本公开另一实施例的关键路径的生成装置的框图。
如图6所示,该装置600包括历史批量数据库模块610、作业基本信息模块620、模拟系统模块630以及生成预测关键路径模块640。
历史批量数据库模块610:在每日批量处理结束后,获取当前批量系统前后项关系和每个作业的运行情况,包括开始时间、结束时间、运行时间。使用前后项关系和每个作业的开始时间、结束时间、运行时间作为关键路径算法输入,计算可以得到每个作业的浮动时间,其中浮动时间为0的作业为关键路径作业。将每个作业的运行情况和浮动时间保存在历史数据库中。历史数据库中保存的数据格式如表1所示。
表1
作业名 | 开始时间 | 结束时间 | 运行时间 | 浮动时间 |
CBK18207 | 2019-07-2402:04 | 2019-07-24 02:08 | 4 | 2 |
CBK18209 | 2019-07-24 02:09 | 2019-07-24 02:10 | 1 | 0 |
CBK18301 | 2019-07-24 02:10 | 2019-07-24 02:17 | 7 | 3 |
作业基本信息模块620:包括待预测作业的前后项关系和作业的历史运行时间。例如从历史数据库中获取某日批量关键路径(浮动时间为0)以及浮动时间小于一定值的作业进行优化,优化方法包括调整作业排程、拆分、程序修改等,关键路径上作业的调整,将会对关键路径产生变化。将变动的信息作业输入传递到模拟系统模块630。
表2
作业名 | 开始时间 | 结束时间 | 运行时间 | 前项作业 | 后项作业 | 状态 |
A(START) | 空 | 空 | 2 | BC | 待运行 | |
B | 空 | 空 | 5 | A | D | 待运行 |
C | 空 | 空 | 6 | A | E | 待运行 |
D | 空 | 空 | 3 | B | E | 待运行 |
E(END) | 空 | 空 | 4 | CD | 待运行 |
模拟系统模块630:对作业基本信息模块620提供的作业前后项关系文件和作业运行时间数据解析,对批量作业进行模拟运行,获取新条件下作业系统的运行情况。
生成预测关键路径模块640:通过收口作业(END)反向扫描其前项作业集中最晚结束作业,直到头作业(START),可直接获得新的关键路径,例如表3关键路径为A-B-D-E。也可根据关键路径算法,把作业模拟得到的运行情况和前后项关系,计算得出关键路径。
表3
作业名 | 开始时间 | 结束时间 | 运行时间 | 前项作业 | 后项作业 | 状态 |
A(START) | 00:00 | 00:02 | 2 | BC | 已运行 | |
B | 00:02 | 00:07 | 5 | A | D | 已运行 |
C | 00:02 | 00:08 | 6 | A | E | 已运行 |
D | 00:07 | 00:10 | 3 | B | E | 已运行 |
E(END) | 00:10 | 00:14 | 4 | CD | 已运行 |
图7示意性示出了根据本公开另一实施例的关键路径的生成装置的框图。
如图7所示,该装置700除了包括如图6所示的历史批量数据库模块610、作业基本信息模块620、模拟系统模块630以及生成预测关键路径模块640之外,还包括当前批量系统运行数据模块710。
当前系统运行数据模块710用于提供当前生产运行情况,主要包括已完成的作业。从历史数据中获取同时期某一天的作业清单A和其历史运行时间,从当前系统运行数据模块710获取已经结束的作业清单B,比对两份作业清单,将清单A中包含清单B作业运行时间设置为0,然后将作业前后项关系以及作业清单A作为作业基本信息模块620输入系统中,通过模拟系统模块630和生成预测关键路径模块640快速计算出关键路径,其关键路径时间就是余下作业需要执行的时间,关键路径上运行时间为0的作业为已运行完成作业。
本公开还提供了在批量无法按照预期完成,快速预测剩余作业还需多久结束的方法。在系统需要升级投产时,需要等待批量结束后的时间窗口,在预计时间内批量无法完成时,需要决策继续等待或立即停止批量,判断的重要依据是预测批量还有多久结束。
需要说明的是,关键路径的生成装置部分的实施例方式与关键路径的生成方法部分的实施例方式对应类似,并且所达到的技术效果也对应类似,在此不再赘述。
根据本公开的实施例的模块、子模块、单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一获得模块500、第二获得模块510、第三获得模块530、生成模块540、第一确定子模块、第一获得子模块、第二获得子模块、第三获取子模块、第一获取单元、第二获取单元、第三获取单元、第一确定单元、第二确定单元、第一获得单元、第二确定子模块、第四获得子模块、第五获得子模块、第六获得子模块、第三确定子模块、生成子模块、第一确定模块、第四获得模块、第五获得模块以及第二确定模块中的任意多个或者历史批量数据库模块610、作业基本信息模块620、模拟系统模块630、生成预测关键路径模块640以及当前批量系统运行数据模块710中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一获得模块500、第二获得模块510、第三获得模块530、生成模块540、第一确定子模块、第一获得子模块、第二获得子模块、第三获取子模块、第一获取单元、第二获取单元、第三获取单元、第一确定单元、第二确定单元、第一获得单元、第二确定子模块、第四获得子模块、第五获得子模块、第六获得子模块、第三确定子模块、生成子模块、第一确定模块、第四获得模块、第五获得模块以及第二确定模块中的任意多个或者历史批量数据库模块610、作业基本信息模块620、模拟系统模块630、生成预测关键路径模块640以及当前批量系统运行数据模块710中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一获得模块500、第二获得模块510、第三获得模块530、生成模块540、第一确定子模块、第一获得子模块、第二获得子模块、第三获取子模块、第一获取单元、第二获取单元、第三获取单元、第一确定单元、第二确定单元、第一获得单元、第二确定子模块、第四获得子模块、第五获得子模块、第六获得子模块、第三确定子模块、生成子模块、第一确定模块、第四获得模块、第五获得模块以及第二确定模块中的任意多个或者历史批量数据库模块610、作业基本信息模块620、模拟系统模块630、生成预测关键路径模块640以及当前批量系统运行数据模块710中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了根据本公开实施例的适于实现上文描述的关键路径的生成方法和装置的电子设备的框图。图8示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,根据本公开实施例的电子设备800包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有电子设备800操作所需的各种程序和数据。处理器801、ROM802以及RAM 803通过总线804彼此相连。处理器801通过执行ROM 802和/或RAM 803中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM802和RAM 803以外的一个或多个存储器中。处理器801也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备800还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。系统800还可以包括连接至I/O接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被处理器801执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 802和/或RAM 803和/或ROM 802和RAM 803以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (14)
1.一种关键路径的生成方法,包括:
获得第一批量作业集合的历史信息,其中,所述历史信息包括每个作业的历史运行信息和多个作业的历史前后项关系;
基于所述历史信息,获得第二批量作业集合的当前信息,其中,所述当前信息包括所述每个作业的预计运行信息和所述多个作业的目标前后项关系;
按照所述目标前后项关系,模拟运行所述第二批量作业集合,以获得所述每个作业的实际运行信息;以及
基于所述每个作业的实际运行信息,生成所述第二批量作业的关键路径。
2.根据权利要求1所述的方法,其中,所述基于所述历史信息,获得第二批量作业集合的当前信息包括:
基于所述历史信息,确定目标作业和非目标作业,其中,所述目标作业为所述多个作业中需要调整的作业,所述非目标作业为所述多个作业中不需要调整的作业;
调整所述目标作业的历史前后项关系,以获得所述多个作业的目标前后项关系;
基于所述目标作业的历史运行信息,获得所述目标作业的预计运行信息;以及
将所述非目标作业的历史运行信息,作为所述非目标作业的预计运行信息。
3.根据权利要求2所述的方法,其中,所述基于所述目标作业的历史运行信息,获得所述目标作业的预计运行信息包括:
基于所述目标作业的历史运行信息,获取所述目标作业在历史特定日的第一运行时长和在所述历史特定日的预设时间范围内的第二运行时长;
获取所述目标作业在所述历史特定日的第一业务量和在所述历史特定日的预设时间范围内的第二业务量;
获取所述目标作业在当前特定日的第三业务量和在所述当前特定日的所述预设时间范围内的第四业务量;
基于所述第一业务量、所述第二业务量、所述第三业务量和所述第四业务量,确定业务增长率;
基于所述第一运行时长、所述第二运行时长和所述业务增长率,确定所述目标作业的预计增长运行时长;以及
基于获取的所述目标作业在所述当前特定日的第三运行时长和所述预计增长运行时长,获得所述目标作业的预计运行信息。
4.根据权利要求1所述的方法,其中,所述按照所述目标前后项关系,模拟运行所述第二批量作业集合,以获得所述每个作业的实际运行信息包括:
从所述第二批量作业集合中的起始作业开始到结束作业为止,按照所述目标前后项关系,确定与所述每个作业对应的直接前项作业;
获得与所述每个作业对应的直接前项作业的开始运行时间;
基于与所述每个作业对应的直接前项作业的开始运行时间和预计运行时间,获得与所述每个作业对应的开始运行时间;以及
将与所述每个作业对应的开始运行时间和预计运行时间,获得与所述每个作业对应的结束运行时间。
5.根据权利要求1所述的方法,其中,所述基于所述每个作业的实际运行信息,生成所述第二批量作业的关键路径包括:
从所述结束作业开始到所述起始作业为止,基于所述每个作业的实际运行信息,确定与所述每个作业对应的直接前项作业中最晚结束的直接前项作业;以及
基于最晚结束的直接前项作业,生成所述第二批量作业的关键路径。
6.根据权利要求1所述的方法,其中,所述方法还包括:
在所述第二批量作业处理异常的情况下,确定已处理完成作业和多个未处理完成作业;
获得每个未处理完成作业的历史运行信息和所述多个未处理完成作业的目标前后项关系;
按照所述多个未处理完成作业的目标前后项关系,模拟运行所述多个未处理完成作业,以获得所述每个未处理完成作业的实际运行信息;以及
基于所述每个未处理完成作业的实际运行信息,确定所述第二批量作业的剩余处理时间。
7.一种关键路径的生成装置,包括:
第一获得模块,配置为获得第一批量作业集合的历史信息,其中,所述历史信息包括每个作业的历史运行信息和多个作业的历史前后项关系;
第二获得模块,配置为基于所述历史信息,获得第二批量作业集合的当前信息,其中,所述当前信息包括所述每个作业的预计运行信息和所述多个作业的目标前后项关系;
第三获得模块,配置为按照所述目标前后项关系,模拟运行所述第二批量作业集合,以获得所述每个作业的实际运行信息;以及
生成模块,配置为基于所述每个作业的实际运行信息,生成所述第二批量作业的关键路径。
8.根据权利要求7所述的装置,其中,所述第二获得模块包括:
第一确定子模块,配置为基于所述历史信息,确定目标作业和非目标作业,其中,所述目标作业为所述多个作业中需要调整的作业,所述非目标作业为所述多个作业中不需要调整的作业;
第一获得子模块,配置为调整所述目标作业的历史前后项关系,以获得所述多个作业的目标前后项关系;
第二获得子模块,配置为基于所述目标作业的历史运行信息,获得所述目标作业的预计运行信息;以及
第三获得子模块,配置为将所述非目标作业的历史运行信息,作为所述非目标作业的预计运行信息。
9.根据权利要求8所述的装置,其中,所述第二获得子模块包括:
第一获取单元,配置为基于所述目标作业的历史运行信息,获取所述目标作业在历史特定日的第一运行时长和在所述历史特定日的预设时间范围内的第二运行时长;
第二获取单元,配置为获取所述目标作业在所述历史特定日的第一业务量和在所述历史特定日的预设时间范围内的第二业务量;
第三获取单元,配置为获取所述目标作业在当前特定日的第三业务量和在所述当前特定日的所述预设时间范围内的第四业务量;
第一确定单元,配置为基于所述第一业务量、所述第二业务量、所述第三业务量和所述第四业务量,确定业务增长率;
第二确定单元,配置为基于所述第一运行时长、所述第二运行时长和所述业务增长率,确定所述目标作业的预计增长运行时长;以及
第一获得单元,配置为基于获取的所述目标作业在所述当前特定日的第三运行时长和所述预计增长运行时长,获得所述目标作业的预计运行信息。
10.根据权利要求7所述的装置,其中,所述第三获得模块包括:
第二确定子模块,配置为从所述第二批量作业集合中的起始作业开始到结束作业为止,按照所述目标前后项关系,确定与所述每个作业对应的直接前项作业;
第四获得子模块,配置为获得与所述每个作业对应的直接前项作业的开始运行时间;
第五获得子模块,配置为基于与所述每个作业对应的直接前项作业的开始运行时间和预计运行时间,获得与所述每个作业对应的开始运行时间;以及
第六获得子模块,配置为将与所述每个作业对应的开始运行时间和预计运行时间,获得与所述每个作业对应的结束运行时间。
11.根据权利要求7所述的装置,其中,所述生成模块包括:
第三确定子模块,配置为从所述结束作业开始到所述起始作业为止,基于所述每个作业的实际运行信息,确定与所述每个作业对应的直接前项作业中最晚结束的直接前项作业;以及
生成子模块,配置为基于最晚结束的直接前项作业,生成所述第二批量作业的关键路径。
12.根据权利要求7所述的装置,其中,所述装置还包括:
第一确定模块,配置为在所述第二批量作业处理异常的情况下,确定已处理完成作业和多个未处理完成作业;
第四获得模块,配置为获得每个未处理完成作业的历史运行信息和所述多个未处理完成作业的目标前后项关系;
第五获得模块,配置为按照所述多个未处理完成作业的目标前后项关系,模拟运行所述多个未处理完成作业,以获得所述每个未处理完成作业的实际运行信息;以及
第二确定模块,配置为基于所述每个未处理完成作业的实际运行信息,确定所述第二批量作业的剩余处理时间。
13.一种电子设备,包括:
一个或多个处理器;以及
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至6中任一项所述的方法。
14.一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010091949.2A CN111310998B (zh) | 2020-02-13 | 2020-02-13 | 关键路径的生成方法、装置、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010091949.2A CN111310998B (zh) | 2020-02-13 | 2020-02-13 | 关键路径的生成方法、装置、电子设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111310998A true CN111310998A (zh) | 2020-06-19 |
CN111310998B CN111310998B (zh) | 2022-06-10 |
Family
ID=71149050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010091949.2A Active CN111310998B (zh) | 2020-02-13 | 2020-02-13 | 关键路径的生成方法、装置、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111310998B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111859403A (zh) * | 2020-07-30 | 2020-10-30 | 中国工商银行股份有限公司 | 依赖关系漏洞的确定方法、装置、电子设备及存储介质 |
CN112036751A (zh) * | 2020-09-01 | 2020-12-04 | 中国银行股份有限公司 | 一种流程关键作业节点的识别方法及装置 |
CN112200461A (zh) * | 2020-10-12 | 2021-01-08 | 中国农业银行股份有限公司 | 关键路径的预测方法及装置、电子设备、计算机存储介质 |
CN113159464A (zh) * | 2021-05-26 | 2021-07-23 | 中国银行股份有限公司 | 一种数据处理方法、装置和服务器 |
CN113269658A (zh) * | 2021-07-16 | 2021-08-17 | 北京达佳互联信息技术有限公司 | 核心数据的生产时长的预估方法、装置、设备及存储介质 |
CN114154962A (zh) * | 2021-12-07 | 2022-03-08 | 中国建设银行股份有限公司 | 批处理监控方法、装置及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090158294A1 (en) * | 2007-12-18 | 2009-06-18 | International Business Machines Corporation | Dynamic critical-path recalculation facility |
US8555281B1 (en) * | 2011-02-16 | 2013-10-08 | Google Inc. | Scheduling of tasks based upon historical execution times |
CN104407912A (zh) * | 2014-12-25 | 2015-03-11 | 无锡清华信息科学与技术国家实验室物联网技术中心 | 一种虚拟机配置方法及装置 |
CN109347669A (zh) * | 2018-10-23 | 2019-02-15 | 中国银行股份有限公司 | 一种银行系统间的批量作业的故障处理方法及装置 |
CN109615138A (zh) * | 2018-12-13 | 2019-04-12 | 中国银行股份有限公司 | 一种作业流程调优方法及装置 |
US10331483B1 (en) * | 2013-06-25 | 2019-06-25 | Amazon Technologies, Inc. | Scheduling data access jobs based on job priority and predicted execution time using historical execution data |
-
2020
- 2020-02-13 CN CN202010091949.2A patent/CN111310998B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090158294A1 (en) * | 2007-12-18 | 2009-06-18 | International Business Machines Corporation | Dynamic critical-path recalculation facility |
US8555281B1 (en) * | 2011-02-16 | 2013-10-08 | Google Inc. | Scheduling of tasks based upon historical execution times |
US10331483B1 (en) * | 2013-06-25 | 2019-06-25 | Amazon Technologies, Inc. | Scheduling data access jobs based on job priority and predicted execution time using historical execution data |
CN104407912A (zh) * | 2014-12-25 | 2015-03-11 | 无锡清华信息科学与技术国家实验室物联网技术中心 | 一种虚拟机配置方法及装置 |
CN109347669A (zh) * | 2018-10-23 | 2019-02-15 | 中国银行股份有限公司 | 一种银行系统间的批量作业的故障处理方法及装置 |
CN109615138A (zh) * | 2018-12-13 | 2019-04-12 | 中国银行股份有限公司 | 一种作业流程调优方法及装置 |
Non-Patent Citations (3)
Title |
---|
何宏烨: "主机批量作业监控模型及实现", 《中国金融电脑》 * |
罗伟: "商业银行批量处理系统的设计与实现", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
黄山等: "MapReduce优化技术综述", 《计算机科学与探索》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111859403A (zh) * | 2020-07-30 | 2020-10-30 | 中国工商银行股份有限公司 | 依赖关系漏洞的确定方法、装置、电子设备及存储介质 |
CN111859403B (zh) * | 2020-07-30 | 2023-09-05 | 中国工商银行股份有限公司 | 依赖关系漏洞的确定方法、装置、电子设备及存储介质 |
CN112036751A (zh) * | 2020-09-01 | 2020-12-04 | 中国银行股份有限公司 | 一种流程关键作业节点的识别方法及装置 |
CN112036751B (zh) * | 2020-09-01 | 2023-08-22 | 中国银行股份有限公司 | 一种流程关键作业节点的识别方法及装置 |
CN112200461A (zh) * | 2020-10-12 | 2021-01-08 | 中国农业银行股份有限公司 | 关键路径的预测方法及装置、电子设备、计算机存储介质 |
CN113159464A (zh) * | 2021-05-26 | 2021-07-23 | 中国银行股份有限公司 | 一种数据处理方法、装置和服务器 |
CN113269658A (zh) * | 2021-07-16 | 2021-08-17 | 北京达佳互联信息技术有限公司 | 核心数据的生产时长的预估方法、装置、设备及存储介质 |
CN114154962A (zh) * | 2021-12-07 | 2022-03-08 | 中国建设银行股份有限公司 | 批处理监控方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111310998B (zh) | 2022-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111310998B (zh) | 关键路径的生成方法、装置、电子设备和介质 | |
Trietsch et al. | PERT 21: Fitting PERT/CPM for use in the 21st century | |
US8024615B2 (en) | Steady state computer testing | |
Ma et al. | A computational experiment to explore better robustness measures for project scheduling under two types of uncertain environments | |
US9262216B2 (en) | Computing cluster with latency control | |
US20140325480A1 (en) | Software Regression Testing That Considers Historical Pass/Fail Events | |
Aranha et al. | An estimation model for test execution effort | |
US8266622B2 (en) | Dynamic critical path update facility | |
JP2013117959A (ja) | プロジェクトの計画及び管理のシミュレーション及び視覚化 | |
US10776100B1 (en) | Predicting downtimes for software system upgrades | |
US8612991B2 (en) | Dynamic critical-path recalculation facility | |
CN114037293A (zh) | 任务分配方法、装置、计算机系统及介质 | |
Yang et al. | Predictive–reactive scheduling on a single resource with uncertain future jobs | |
CN113807046A (zh) | 一种测试激励优化回归验证方法、系统及介质 | |
Salhab et al. | Accounting for variability: Identifying critical activities as a supplement to the critical path | |
Adamu et al. | Reactive project scheduling: minimizing delays in the completion times of projects | |
US20220207441A1 (en) | Method of observing and evaluating processes and user action efficiency with recommendations on change | |
Baranov et al. | Baital: an adaptive weighted sampling platform for configurable systems | |
Cheikhrouhou et al. | Toward a verification of time-centric business process models | |
CARLO | John K. Hollmann, PE CCE | |
Hossain et al. | Optimizing concurrent execution of design activities with minimum redesign | |
Ponsard et al. | A Two-phased Risk Management Framework Targeting SMEs Project Portfolios. | |
Hübner et al. | Solving the nuclear dismantling project scheduling problem by combining mixed-integer and constraint programming techniques and metaheuristics | |
Zhang et al. | Optimization of uncertain dependent task mapping on heterogeneous computing platforms | |
US20240152797A1 (en) | Systems and methods for model training and model inference |
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 |