CN113312359B - 一种分布式作业进度计算方法、装置和存储介质 - Google Patents

一种分布式作业进度计算方法、装置和存储介质 Download PDF

Info

Publication number
CN113312359B
CN113312359B CN202110719787.7A CN202110719787A CN113312359B CN 113312359 B CN113312359 B CN 113312359B CN 202110719787 A CN202110719787 A CN 202110719787A CN 113312359 B CN113312359 B CN 113312359B
Authority
CN
China
Prior art keywords
job
hash table
progress
resource
task
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
Application number
CN202110719787.7A
Other languages
English (en)
Other versions
CN113312359A (zh
Inventor
李年
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zhuyun Huijian Software Technology Co ltd
Original Assignee
Beijing Zhuyun Huijian Software Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Zhuyun Huijian Software Technology Co ltd filed Critical Beijing Zhuyun Huijian Software Technology Co ltd
Priority to CN202110719787.7A priority Critical patent/CN113312359B/zh
Publication of CN113312359A publication Critical patent/CN113312359A/zh
Application granted granted Critical
Publication of CN113312359B publication Critical patent/CN113312359B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/08Construction
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Marketing (AREA)
  • Computational Linguistics (AREA)
  • Fuzzy Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Human Resources & Organizations (AREA)
  • Mathematical Physics (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Multi Processors (AREA)

Abstract

本发明涉及一种分布式作业进度计算方法,包括利用微服务将作业进度计算任务以多个服务并行方式进行分布式运行,包括接收客户端发送的作业数据请求信息;根据作业数据请求信息、作业进度源数据和基于DataFusion的分布式作业进度计算算法,生成作业进度计算结果;通过微服务将作业进度计算结果发送至客户端,存储作业进度源数据和作业进度计算结果。本发明结合数据融合框架,增加了分布式解决方案,提高计算速度。结合Actix‑web和Nacos框架实现,可应对大量并发请求的负载均衡。异步存储用户源数据和结果数据到云数据库中,可重复高效使用,且不影响计算速度。本发明还涉及一种分布式作业进度计算装置、设备和存储介质。

Description

一种分布式作业进度计算方法、装置和存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种分布式作业进度计算方法、装置和存储介质。
背景技术
当前,计算工程建筑行业常用的作业进度方法,通常是采用集中式计算方式,这种方式造成了计算速度慢,数据安全性低,以及客户不满足等问题,目前亟需解决这一问题。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种分布式作业进度计算方法、装置和存储介质。
本发明解决上述技术问题的技术方案如下:
一种分布式作业进度计算方法,利用微服务将作业进度计算任务以多个服务并行方式进行分布式运行,所述方法包括:
接收客户端发送的作业数据请求信息;
根据所述作业数据请求信息、作业进度源数据和基于DataFusion的分布式作业进度计算算法,生成作业进度计算结果;
通过所述微服务将所述作业进度计算结果发送至所述客户端,并存储所述作业进度源数据和所述作业进度计算结果。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步地,所述方法还包括:
Nacos集群接收所述客户端发送的所述作业数据请求信息,并将所述作业数据请求信息分配至对应的微服务。
进一步地,所述根据所述作业数据请求信息、作业进度源数据和基于DataFusion的分布式作业进度计算算法,生成作业进度计算结果,具体包括:
解析所述作业数据请求信息中的源数据,并将所述源数据转换成目标数据;
建立存储待计算项目的第一哈希表,并建立存储待计算作业的第二哈希表;
利用数据融合DataFusion框架,在多台服务器上并行将作业日历哈希表、作业资源哈希表、作业依赖关系列表、作业资源单价哈希表、外部作业资源哈希表、分类作业列表以及WBS汇总哈希表分布式计算并存储;
利用所述第一哈希表、所述第二哈希表、所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、外部作业资源哈希表、所述分类作业列表,计算得到所述作业进度计算结果和所述作业进度计算ID;
将所述作业进度计算结果转换为源格式的数据后,发送至所述客户端,并根据所述作业进度计算ID,将所述作业进度计算结果存储至云服务中。
进一步地,所述利用数据融合DataFusion框架,在多台服务器上并行将作业日历哈希表、作业资源哈希表、作业依赖关系列表、作业资源单价哈希表、外部作业资源哈希表、分类作业列表以及WBS汇总哈希表分布式计算并存储,具体包括:
根据所述作业数据请求信息生成目标任务,并根据所述目标任务所对应的所述作业进度源数据确定所述目标任务的区域信息;
根据所述区域信息确定所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、所述外部作业资源哈希表、所述分类作业列表以及所述WBS汇总哈希表对应的存储区域;
根据所述目标任务所属的类型确定所述目标任务所对应的任务数据在所述存储区域中对应的目标分区。
若每一个所述服务器的状态信息中的可处理任务类型信息中包含所述目标任务的类型,将与所述状态信息对应的服务器确定为所述目标任务的候选服务器;
将所述候选服务器中的可处理任务量大于所述目标任务对应的任务量且所述候选服务器中的效率最大的所述候选服务器确定为所述目标服务器;
所述目标服务器通过所述目标分区访问所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、所述外部作业资源哈希表、所述分类作业列表以及所述WBS汇总哈希表。
进一步地,所述服务器的状态信息通过以下方式确定:
针对每一个所述服务器,获取所述服务器处理的各个历史任务的任务信息,其中,所述任务信息包括任务类型、任务量和处理时间;
按照任务类型对各个历史任务进行分类,确定每一任务类型对应的历史任务以及该任务类型对应的历史任务的总数量,并根据所述任务类型对应的历史任务的总数量确定所述服务器对应的可处理任务类型;
根据所述服务器处理的各个历史任务的任务量和处理时间确定所述服务器的效率。
进一步地,所述利用所述第一哈希表、所述第二哈希表、所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、外部作业资源哈希表、所述分类作业列表,计算得到所述作业进度计算结果和所述作业进度计算ID,具体包括:
根据所述作业数据请求信息中用户是否保留所述待计算作业的最早日期和/或最晚日期,计算所述待计算作业进度的开始日期和结束日期;
根据所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、外部作业资源哈希表、所述分类作业列表,计算得到所述作业进度计算结果、所述作业进度计算ID、所述最早日期和所述最晚日期,得到所述待计算作业进度的开始日期、结束日期、滞后工期、资源单位时间数量、资源数量、资源费用、单价配置以及分配费用。
进一步地,所述根据所述作业数据请求信息中用户是否保留所述待计算作业的初始最早日期和/或初始最晚日期,计算所述待计算作业进度的所述开始日期和所述结束日期,具体包括:
当所述作业数据请求信息中用户保留所述待计算作业的最早日期和/或最晚日期时,根据前置进度,得到所述待计算作业的第一开始日期;
向后进度计算所述待计算作业的第一结束日期,并根据所述待计算作业的前置作业的浮动时间,得到所述待计算作业的第二结束日期;
根据所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、外部作业资源哈希表、所述分类作业列表中得到的后置作业的进度信息、作业平衡优先级、资源日历、资源单价、所述第一开始日期和所述第二结束日期,向前平衡资源计算,得到所述待计算作业的所述开始日期和所述结束日期。
进一步地,所述根据所述作业数据请求信息中用户是否保留所述待计算作业的最早日期和/或最晚日期,计算所述待计算作业进度的开始日期和结束日期,具体包括:
根据从所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、外部作业资源哈希表、所述分类作业列表中得到所述作业平衡优先级、所述资源日历、所述资源单价进行向前平衡资源计算,得到所述待计算作业的第三开始时间和第三结束时间;
根据所述作业平衡优先级、所述资源日历、所述资源单价、所述第三开始时间和第三结束时间进行向后平衡资源计算,得到所述待计算作业的第四开始时间和第四结束时间。
进一步地,所述方法还包括:
Nacos集群接收所述客户端发送的所述作业数据请求信息,并将所述作业数据请求信息分配至对应的微服务;
Actix-web集群根据所述作业数据请求信息,调用所述微服务,并可根据预设并发数量,将所述作业数据请求信息所述对应的作业数据请求任务负载均衡至对应服务器。
本方法发明的有益效果是:提出了一种分布式作业进度计算方法,利用微服务将作业进度计算任务以多个服务并行方式进行分布式运行,包括接收客户端发送的作业数据请求信息;根据作业数据请求信息、作业进度源数据和基于DataFusion的分布式作业进度计算算法,生成作业进度计算结果;通过微服务将作业进度计算结果发送至客户端,存储作业进度源数据和作业进度计算结果。本发明结合数据融合框架,增加了分布式解决方案,提高计算速度。结合Actix-web和Nacos框架实现,可应对大量并发请求的负载均衡。利用Rust实现,保证了内存安全性,并和分布式计算算法一起提升了计算速度。异步存储用户源数据和结果数据到云数据库中,可重复高效使用,且不影响计算速度。
本发明还解决上述技术问题的另一种技术方案如下:
一种分布式作业进度计算装置,利用微服务将作业进度计算任务以多个服务并行方式进行分布式运行,包括:
接收装置,用于接收客户端发送的作业数据请求信息;
计算装置,用于所述根据所述作业数据请求信息、作业进度源数据和基于DataFusion的分布式作业进度计算算法,生成作业进度计算结果;
查询装置,用于通过所述微服务将所述作业进度计算结果发送至所述客户端,并存储所述作业进度源数据和所述作业进度计算结果。
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述技术方案中任一项所述的分布式作业进度计算方法的步骤。
本发明附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所述的分布式作业进度计算方法的流程示意图;
图2为本发明另一实施例所述的分布式作业进度计算方法的流程示意图;
图3为本发明另一实施例所述的分布式作业进度计算方法的流程示意图;
图4为本发明实施例所述的分布式作业进度计算装置的模块示意图;
图5为本发明实施例中分布式作业进度计算装置的模块示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
如图1所示,一种分布式作业进度计算方法,利用微服务将作业进度计算任务以多个服务并行方式进行分布式运行,包括以下步骤:
110、接收客户端发送的作业数据请求信息。
120、根据所述作业数据请求信息、作业进度源数据和基于DataFusion的分布式作业进度计算算法,生成作业进度计算结果。
130、通过所述微服务将所述作业进度计算结果发送至所述客户端,并存储所述作业进度源数据和所述作业进度计算结果。
基于上述实施例,进一步地,步骤120中具体包括:
121、解析所述作业数据请求信息中的源数据,并将所述源数据转换成目标数据。
122、建立存储待计算项目的第一哈希表,并建立存储待计算作业的第二哈希表。
123、利用数据融合DataFusion框架,在多台服务器上并行将作业日历哈希表、作业资源哈希表、作业依赖关系列表、作业资源单价哈希表、外部作业资源哈希表、分类作业列表以及WBS汇总哈希表分布式计算并存储。
124、利用所述第一哈希表、所述第二哈希表、所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、外部作业资源哈希表、所述分类作业列表,计算得到所述作业进度计算结果和所述作业进度计算ID。
125、将所述作业进度计算结果转换为源格式的数据后,发送至所述客户端,并根据所述作业进度计算ID,将所述作业进度计算结果存储至云服务中。
进一步地,步骤123中具体包括:
根据所述作业数据请求信息生成目标任务,并根据所述目标任务所对应的所述作业进度源数据确定所述目标任务的区域信息。
根据所述区域信息确定所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、所述外部作业资源哈希表、所述分类作业列表以及所述WBS汇总哈希表对应的存储区域。
根据所述目标任务所属的类型确定所述目标任务所对应的任务数据在所述存储区域中对应的目标分区。
若每一个所述服务器的状态信息中的可处理任务类型信息中包含所述目标任务的类型,将与所述状态信息对应的服务器确定为所述目标任务的候选服务器。
将所述候选服务器中的可处理任务量大于所述目标任务对应的任务量且所述候选服务器中的效率最大的所述候选服务器确定为所述目标服务器。
所述目标服务器通过所述目标分区访问所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、所述外部作业资源哈希表、所述分类作业列表以及所述WBS汇总哈希表。
进一步地,所述服务器的状态信息通过以下方式确定:
针对每一个所述服务器,获取所述服务器处理的各个历史任务的任务信息,其中,所述任务信息包括任务类型、任务量和处理时间。
按照任务类型对各个历史任务进行分类,确定每一任务类型对应的历史任务以及该任务类型对应的历史任务的总数量,并根据所述任务类型对应的历史任务的总数量确定所述服务器对应的可处理任务类型。
根据所述服务器处理的各个历史任务的任务量和处理时间确定所述服务器的效率。
进一步地,根据所述作业数据请求信息中用户是否保留所述待计算作业的最早日期和/或最晚日期,计算所述待计算作业进度的开始日期和结束日期。
根据所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、外部作业资源哈希表、所述分类作业列表,计算得到所述作业进度计算结果、所述作业进度计算ID、所述最早日期和所述最晚日期,得到所述待计算作业进度的开始日期、结束日期、滞后工期、资源单位时间数量、资源数量、资源费用、单价配置以及分配费用。
进一步地,当所述作业数据请求信息中用户保留所述待计算作业的最早日期和/或最晚日期时,根据前置进度,得到所述待计算作业的第一开始日期。
向后进度计算所述待计算作业的第一结束日期,并根据所述待计算作业的前置作业的浮动时间,得到所述待计算作业的第二结束日期。
根据所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、外部作业资源哈希表、所述分类作业列表中得到的后置作业的进度信息、作业平衡优先级、资源日历、资源单价、所述第一开始日期和所述第二结束日期,向前平衡资源计算,得到所述待计算作业的所述开始日期和所述结束日期。
进一步地,根据从所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、外部作业资源哈希表、所述分类作业列表中得到所述作业平衡优先级、所述资源日历、所述资源单价进行向前平衡资源计算,得到所述待计算作业的第三开始时间和第三结束时间。
根据所述作业平衡优先级、所述资源日历、所述资源单价、所述第三开始时间和第三结束时间进行向后平衡资源计算,得到所述待计算作业的第四开始时间和第四结束时间。
应理解,上述实施例可适用于对项目中的大量作业就行分布式进度计算。
进一步地,Nacos集群接收所述客户端发送的所述作业数据请求信息,并将所述作业数据请求信息分配至对应的微服务。
进一步地,Actix-web集群根据所述作业数据请求信息,调用所述微服务,并可根据预设并发数量,将所述作业数据请求信息所述对应的作业数据请求任务负载均衡至对应服务器。
如图2-3所示,首先,结合Nacos框架部署管理进度计算云服务。Nacos集成了服务发现,配置管理,同时又是直接单独部署,支持集群,支持常用的SpringCloud,所以用户可用SpringCloud来消费调用进度计算微服务。Nacos没有实现Rust库,根据Nacos的OpenAPI来实现。
结合Actix-web框架提供微服务输入接口。Actix-web框架以Rust编写,基于此框架,用Rust开发出进度计算微服务的RESTful接口,并支持各种数据格式作为输入,如Json,XML,CSV,Excel等,加强可用性。
结合DataFusion框架从各类源数据读取并解析数据。DataFusion框架用Rust编写,利用此框架API,用Rust实现从各种不同类型的数据源读取并解析数据。
结合DataFusion框架用Rust开发实现分布式进度计算。调用DataFusionAPI,用Rust实现分布式进度计算算法,可并行计算的部分包含:构建数据为各种类型的作业、读取作业日历数据、作业资源数据、作业费用数据、作业依赖关系等,最后利用这些数据计算作业驱动路径、关键路径。
根据用户需求返回各种数据格式的计算结果和计算ID。根据用户调用进度计算微服务传入的参数,返回对应数据格式的计算结果,和对应的计算ID。结果同样支持多种数据格式,如Json、XML、CSV以及Excel等。计算ID用于之后的再次查询。
异步存储用户源数据和结果数据到云数据库,用户可根据计算ID查询。进度计算得到结果后,异步存储此次计算的源数据和结果数据到云数据库中,并且根据用户的需求保留一定时间,用户可根据上一步返回的计算ID,向云服务发送请求,直接查询结算结果,不用再次计算,提高效率。此外异步操作不会影响之前的计算速度。
应理解,客户端通过RESTful接口,发送作业相关数据请求到Nacos集群。Nacos集群接受请求,自动分配到对应的进度计算微服务,并监视微服务工作状态。Nacos集群可水平扩展。
Actix-web集群根据用户请求,调用进度计算云服务,并可根据并发数量多少,做负载均衡到对应服务器上。Actix-web集群可水平扩展。
支持多种数据格式作为输入,如Json,XML,CSV,Excel等,根据不同数据格式调用对应解析算法解析数据。
采用DataFusion框架,分布式并行构筑作业日历哈希表、作业资源哈希表、作业依赖关系列表、作业资源单价、外部作业资源哈希表、分类作业到7个列表、WBS汇总哈希表,提高了计算速度,并可根据作业量多少水平扩展,轻松应对海量作业。具体进度计算方法如下:
S1、判断是否保留进度计算最早和最晚日期;
若是,进入步骤S2,否则,进入步骤S3;
步骤S2:向前进度计算作业最早日期、驱动前置信息,向后进度计算最晚日期;计算向前作业的浮时,设置作业最晚日期,根据作业平衡优先级、资源日历、资源单价等,向前平衡资源计算,调整开始结束日期。
步骤S3、根据作业平衡优先级、资源日历、资源单价等,向前平衡资源计算,调整开始结束日期,保存作业的最早日期,根据作业平衡优先级、资源日历、资源单价等,向后平衡资源计算,调整开始结束日期,向后设置配合作业开始结束日期,保存作业的最晚日期,向前设置配合作业开始结束日期,同步作业目标值,如开始、结束日期、滞后工期、资源单位时间数量、资源数量、费用、单价配置等,计算必须作业浮时,板块WBS汇总作业,必须作业,计算作业驱动路径、关键路径,如果需要进度计算后重新计算分配费,且被计算数据可以重新计算费用,重新计算分配费用。
根据用户需求返回各种数据格式的计算结果和计算ID。根据用户调用进度计算微服务传入的参数,返回对应数据格式的计算结果,和对应的计算ID。计算ID可用于之后的再次查询。
异步存储用户源数据和结果数据到云数据库,用户可根据计算ID查询。进度计算得到结果后,异步存储此次计算的源数据和结果数据到云数据库中,并且根据用户的需求保留一定时间,用户可根据上一步返回的计算ID,向云服务发送请求,直接查询结算结果,不用再次计算,提高效率。异步操作,也不会影响之前的计算速度。
基于上述实施例所提出的一种分布式作业进度计算方法,利用微服务将作业进度计算任务以多个服务并行方式进行分布式运行,包括接收客户端发送的作业数据请求信息;根据作业数据请求信息、作业进度源数据和基于DataFusion的分布式作业进度计算算法,生成作业进度计算结果;通过微服务将作业进度计算结果发送至客户端,存储作业进度源数据和作业进度计算结果。本发明结合数据融合框架,增加了分布式解决方案,提高计算速度。结合Actix-web和Nacos框架实现,可应对大量并发请求的负载均衡。利用Rust实现,保证了内存安全性,并和分布式计算算法一起提升了计算速度。异步存储用户源数据和结果数据到云数据库中,可重复高效使用,且不影响计算速度。
此外,本发明还提供一种分布式作业进度计算装置,利用微服务将作业进度计算任务以多个服务并行方式进行分布式运行,包括:
接收装置,用于接收客户端发送的作业数据请求信息。
计算装置,用于所述根据所述作业数据请求信息、作业进度源数据和基于DataFusion的分布式作业进度计算算法,生成作业进度计算结果。
查询装置,用于通过所述微服务将所述作业进度计算结果发送至所述客户端,并存储所述作业进度源数据和所述作业进度计算结果。
应理解,如图4所示,基于上述实施例,也可以部署管理进度云模块,为云服务的部署管理模块,Nacos集群集成了服务发现,配置管理,同时又是直接单独部署,支持集群,支持常用的SpringCloud,可用SpringCloud来消费调用进度计算微服务。Nacos没有实现Rust库,根据Nacos的OpenAPI来实现。此模块会调用进度云输入接口模块。
进度云输入接口模块,可将并发微服务请求分配到合适的Actix-web服务器上,起到负载均衡的作用。Actix-web框架以Rust编写,基于此框架,用Rust开发出进度计算微服务的RESTful接口,并支持各种数据格式作为输入,如Json、XML、CSV和Excel等,加强可用性,并调用分布式计算进度云模。
分布式计算进度云模块,此模块为分布式进度计算逻辑实现模块,此模块从进度云输入接口模块的到输入作业相关数据后,通过分布式计算把作业数据分解为多种数据结构,如项目HashMap、作业HashMap、作业资源HasMap、作业日历HashMap、作业资源HashMap、作业依赖关系List、作业资源单价、外部作业资源HashMap、分类作业到7个List、WBS汇总HashMap等,通过这些数据结构,进行作业进度计算,得到驱动路径、关键路径,作业最早最晚日期等。此模块会根据用户需求返回各种数据格式的计算结果和计算ID给用户,还会异步调用云数据库模块。
云数据库模块,用来异步存储用户源数据和进度计算结果数据,不会影响计算速度,用户可根据上一步返回的计算ID,向云服务发送请求,直接查询结算结果,不用再次计算,提高效率。
应理解,如图5所示,基于上述实施例也可以部署管理进度云服务器集群,为多台计算机组成的集群,采用Nacos集成了服务发现、配置管理等功能,还可单独部署或集群部署,支持常用的SpringCloud,可根据微服务的数量来配置服务器的数量。
进度云输入接口服务器集群,为多台计算机组成的集群,部署Actix-web框架,以Rust编写,基于此框架,用Rust开发出进度计算微服务的RESTful接口。此集群可将并发微服务请求分配到合适的Actix-web服务器上,起到负载均衡的作用,可根据用户请求的数量来配置服务器的数量。
分布式计算进度云服务器集群为多台计算机组成的集群,用来运行分布式进度计算,得到驱动路径、关键路径以及作业开始日期和结束日期等,可根据计算量大小来侧重配置高性能服务器。
云数据库服务器集群为多台计算机组成的集群,用来部署高可用数据库,来异步存储用户源数据和进度计算结果数据,可根据数据量大小来配置服务器的数量,如果数据量达到TB级,可考虑用分布式数据库。
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述技术方案中任一项所述的分布式作业进度计算方法的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (8)

1.一种分布式作业进度计算方法,其特征在于,利用微服务将作业进度计算任务以多个服务并行方式进行分布式运行,所述方法包括:
接收客户端发送的作业数据请求信息;
根据所述作业数据请求信息、作业进度源数据和基于DataFusion的分布式作业进度计算算法,生成作业进度计算结果;
通过所述微服务将所述作业进度计算结果发送至所述客户端,并存储所述作业进度源数据和所述作业进度计算结果;
所述根据所述作业数据请求信息、作业进度源数据和基于DataFusion的分布式作业进度计算算法,生成作业进度计算结果,具体包括:
解析所述作业数据请求信息中的源数据,并将所述源数据转换成目标数据;
建立存储待计算项目的第一哈希表,并建立存储待计算作业的第二哈希表;
利用数据融合DataFusion框架,在多台服务器上并行将作业日历哈希表、作业资源哈希表、作业依赖关系列表、作业资源单价哈希表、外部作业资源哈希表、分类作业列表以及WBS汇总哈希表分布式计算并存储;
利用所述第一哈希表、所述第二哈希表、所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、外部作业资源哈希表、所述分类作业列表,计算得到所述作业进度计算结果和所述作业进度计算ID;
将所述作业进度计算结果转换为源格式的数据后,发送至所述客户端,并根据所述作业进度计算ID,将所述作业进度计算结果存储至云服务中;
所述利用数据融合DataFusion框架,在多台服务器上并行将作业日历哈希表、作业资源哈希表、作业依赖关系列表、作业资源单价哈希表、外部作业资源哈希表、分类作业列表以及WBS汇总哈希表分布式计算并存储,具体包括:
根据所述作业数据请求信息生成目标任务,并根据所述目标任务所对应的所述作业进度源数据确定所述目标任务的区域信息;
根据所述区域信息确定所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、所述外部作业资源哈希表、所述分类作业列表以及所述WBS汇总哈希表对应的存储区域;
根据所述目标任务所属的类型确定所述目标任务所对应的任务数据在所述存储区域中对应的目标分区;
若每一个所述服务器的状态信息中的可处理任务类型信息中包含所述目标任务的类型,将与所述状态信息对应的服务器确定为所述目标任务的候选服务器;
将所述候选服务器中的可处理任务量大于所述目标任务对应的任务量且所述候选服务器中的效率最大的所述候选服务器确定为目标服务器;
所述目标服务器通过所述目标分区访问所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、所述外部作业资源哈希表、所述分类作业列表以及所述WBS汇总哈希表。
2.根据权利要求1所述的分布式作业进度计算方法,其特征在于,所述服务器的状态信息通过以下方式确定:
针对每一个所述服务器,获取所述服务器处理的各个历史任务的任务信息,其中,所述任务信息包括任务类型、任务量和处理时间;
按照任务类型对各个历史任务进行分类,确定每一任务类型对应的历史任务以及该任务类型对应的历史任务的总数量,并根据所述任务类型对应的历史任务的总数量确定所述服务器对应的可处理任务类型;
根据所述服务器处理的各个历史任务的任务量和处理时间确定所述服务器的效率。
3.根据权利要求2所述的分布式作业进度计算方法,其特征在于,所述利用所述第一哈希表、所述第二哈希表、所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、外部作业资源哈希表、所述分类作业列表,计算得到所述作业进度计算结果和所述作业进度计算ID,具体包括:
根据所述作业数据请求信息中用户是否保留所述待计算作业的最早日期和/或最晚日期,计算所述待计算作业进度的开始日期和结束日期;
根据所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、外部作业资源哈希表、所述分类作业列表,计算得到所述作业进度计算结果、所述作业进度计算ID、所述最早日期和所述最晚日期,得到所述待计算作业进度的开始日期、结束日期、滞后工期、资源单位时间数量、资源数量、资源费用、单价配置以及分配费用。
4.根据权利要求3所述的分布式作业进度计算方法,其特征在于,所述根据所述作业数据请求信息中用户是否保留所述待计算作业的初始最早日期和/或初始最晚日期,计算所述待计算作业进度的所述开始日期和所述结束日期,具体包括:
当所述作业数据请求信息中用户保留所述待计算作业的最早日期和/或最晚日期时,根据前置进度,得到所述待计算作业的第一开始日期;
向后进度计算所述待计算作业的第一结束日期,并根据所述待计算作业的前置作业的浮动时间,得到所述待计算作业的第二结束日期;
根据所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、外部作业资源哈希表、所述分类作业列表中得到的后置作业的进度信息、作业平衡优先级、资源日历、资源单价、所述第一开始日期和所述第二结束日期,向前平衡资源计算,得到所述待计算作业的所述开始日期和所述结束日期。
5.根据权利要求4所述的分布式作业进度计算方法,其特征在于,所述根据所述作业数据请求信息中用户是否保留所述待计算作业的最早日期和/或最晚日期,计算所述待计算作业进度的开始日期和结束日期,具体包括:
根据从所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、外部作业资源哈希表、所述分类作业列表中得到所述作业平衡优先级、所述资源日历、所述资源单价进行向前平衡资源计算,得到所述待计算作业的第三开始时间和第三结束时间;
根据所述作业平衡优先级、所述资源日历、所述资源单价、所述第三开始时间和第三结束时间进行向后平衡资源计算,得到所述待计算作业的第四开始时间和第四结束时间。
6.根据权利要求1-5中任一项所述的分布式作业进度计算方法,其特征在于,所述方法还包括:
Nacos集群接收所述客户端发送的所述作业数据请求信息,并将所述作业数据请求信息分配至对应的微服务;
Actix-web集群根据所述作业数据请求信息,调用所述微服务,并可根据预设并发数量,将所述作业数据请求信息对应的作业数据请求任务负载均衡至对应服务器。
7.一种分布式作业进度计算装置,其特征在于,利用微服务将作业进度计算任务以多个服务并行方式进行分布式运行,包括:
接收装置,用于接收客户端发送的作业数据请求信息;
计算装置,用于根据所述作业数据请求信息、作业进度源数据和基于DataFusion的分布式作业进度计算算法,生成作业进度计算结果;
查询装置,用于通过所述微服务将所述作业进度计算结果发送至所述客户端,并存储所述作业进度源数据和所述作业进度计算结果;
所述计算装置,具体用于解析所述作业数据请求信息中的源数据,并将所述源数据转换成目标数据;
建立存储待计算项目的第一哈希表,并建立存储待计算作业的第二哈希表;
利用数据融合DataFusion框架,在多台服务器上并行将作业日历哈希表、作业资源哈希表、作业依赖关系列表、作业资源单价哈希表、外部作业资源哈希表、分类作业列表以及WBS汇总哈希表分布式计算并存储;
利用所述第一哈希表、所述第二哈希表、所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、外部作业资源哈希表、所述分类作业列表,计算得到所述作业进度计算结果和所述作业进度计算ID;
将所述作业进度计算结果转换为源格式的数据后,发送至所述客户端,并根据所述作业进度计算ID,将所述作业进度计算结果存储至云服务中;
所述计算装置,具体用于根据所述作业数据请求信息生成目标任务,并根据所述目标任务所对应的所述作业进度源数据确定所述目标任务的区域信息;
根据所述区域信息确定所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、所述外部作业资源哈希表、所述分类作业列表以及所述WBS汇总哈希表对应的存储区域;
根据所述目标任务所属的类型确定所述目标任务所对应的任务数据在所述存储区域中对应的目标分区;
若每一个所述服务器的状态信息中的可处理任务类型信息中包含所述目标任务的类型,将与所述状态信息对应的服务器确定为所述目标任务的候选服务器;
将所述候选服务器中的可处理任务量大于所述目标任务对应的任务量且所述候选服务器中的效率最大的所述候选服务器确定为目标服务器;
所述目标服务器通过所述目标分区访问所述作业日历哈希表、所述作业资源哈希表、所述作业依赖关系列表、所述作业资源单价哈希表、所述外部作业资源哈希表、所述分类作业列表以及所述WBS汇总哈希表。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的分布式作业进度计算方法的步骤。
CN202110719787.7A 2021-06-28 2021-06-28 一种分布式作业进度计算方法、装置和存储介质 Active CN113312359B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110719787.7A CN113312359B (zh) 2021-06-28 2021-06-28 一种分布式作业进度计算方法、装置和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110719787.7A CN113312359B (zh) 2021-06-28 2021-06-28 一种分布式作业进度计算方法、装置和存储介质

Publications (2)

Publication Number Publication Date
CN113312359A CN113312359A (zh) 2021-08-27
CN113312359B true CN113312359B (zh) 2023-04-07

Family

ID=77380646

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110719787.7A Active CN113312359B (zh) 2021-06-28 2021-06-28 一种分布式作业进度计算方法、装置和存储介质

Country Status (1)

Country Link
CN (1) CN113312359B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114154962A (zh) * 2021-12-07 2022-03-08 中国建设银行股份有限公司 批处理监控方法、装置及设备
CN114218317B (zh) * 2022-02-18 2022-05-13 苏州浪潮智能科技有限公司 进度信息管控方法、微服务装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107832901A (zh) * 2017-07-28 2018-03-23 平安科技(深圳)有限公司 任务分配方法、装置、终端设备及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7849069B2 (en) * 2006-06-21 2010-12-07 International Business Machines Corporation Method and system for federated resource discovery service in distributed systems
CN102130950B (zh) * 2011-03-14 2013-10-23 中国科学技术大学苏州研究院 基于Hadoop集群的分布式监控方法
US9262216B2 (en) * 2012-02-14 2016-02-16 Microsoft Technologies Licensing, LLC Computing cluster with latency control
CN110134714B (zh) * 2019-05-22 2021-04-20 东北大学 适用于大数据迭代计算的分布式计算框架缓存索引方法
CN110908793A (zh) * 2019-09-30 2020-03-24 北京辰森世纪科技股份有限公司 长时任务执行方法、装置、设备及可读存储介质
CN111753040A (zh) * 2020-06-30 2020-10-09 北京超图软件股份有限公司 地理空间数据的处理方法、装置及系统
CN112887407B (zh) * 2021-01-26 2023-01-17 北京百度网讯科技有限公司 用于分布式集群的作业流量控制方法和装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107832901A (zh) * 2017-07-28 2018-03-23 平安科技(深圳)有限公司 任务分配方法、装置、终端设备及存储介质

Also Published As

Publication number Publication date
CN113312359A (zh) 2021-08-27

Similar Documents

Publication Publication Date Title
CN109218355B (zh) 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法
CN108776934B (zh) 分布式数据计算方法、装置、计算机设备及可读存储介质
CN107545338B (zh) 业务数据处理方法及业务数据处理系统
CN111091429A (zh) 电子票据标识分配方法及装置、电子票据生成系统
EP3014804B1 (en) Burst mode control
CN113312359B (zh) 一种分布式作业进度计算方法、装置和存储介质
CN102542367B (zh) 基于领域模型的云计算网络工作流处理方法、装置和系统
US8117611B2 (en) Method, system, and program product for deploying a platform dependent application in a grid environment
US10783002B1 (en) Cost determination of a service call
CN106330987A (zh) 动态负荷均衡方法
US20220188171A1 (en) System and Method for User Devices in Cloud Computing Environment
CN111078516A (zh) 分布式性能测试方法、装置、电子设备
CN113283803B (zh) 一种物资需求计划的制定方法、相关装置及存储介质
CN113608751B (zh) 推理服务平台的运行方法、装置、设备及存储介质
CN114721824A (zh) 一种资源分配方法、介质以及电子设备
CN111258760A (zh) 一种平台管理方法、系统、装置及存储介质
CN111858585A (zh) 区块链策略处理装置、计算机可读存储介质及终端设备
CN112561301A (zh) 工单分配方法、装置、设备和计算机可读介质
CN109842665B (zh) 用于任务分配服务器的任务处理方法和装置
CN106845926B (zh) 一种第三方支付监管系统分布式数据流处理方法及系统
JP2009140079A (ja) リソースの運用管理方法、運用管理プログラム、および、運用管理装置
CN111866171B (zh) 报文处理方法、装置、电子设备和介质
CN114489978A (zh) 资源调度方法、装置、设备及存储介质
CN113986511A (zh) 任务管理方法及相关装置
CN111367680A (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