CN111813440B - 一种多线程应用发布方法及装置 - Google Patents
一种多线程应用发布方法及装置 Download PDFInfo
- Publication number
- CN111813440B CN111813440B CN202010705710.XA CN202010705710A CN111813440B CN 111813440 B CN111813440 B CN 111813440B CN 202010705710 A CN202010705710 A CN 202010705710A CN 111813440 B CN111813440 B CN 111813440B
- Authority
- CN
- China
- Prior art keywords
- node
- release
- application
- current node
- applications
- 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
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000004590 computer program Methods 0.000 claims description 12
- 230000015654 memory Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种多线程应用发布方法,该方法包括:接收用户端上传的发布邻接表,并创建发布邻接表中各应用对应的待发布节点;根据发布邻接表中各应用之间的依赖关系,将待发布节点中无父节点的至少一个待发布节点作为当前节点,并对各当前节点的应用数据进行编译操作;将当前节点编译后的应用数据进行发布操作,并检测发布操作是否成功;若发布操作成功,则将当前节点设置为发布完成状态;查询当前节点是否存在至少一个待发布子节点;若当前节点存在至少一个待发布子节点,则将当前节点的应用数据存入数据栈中,并将各待发布子节点作为新的当前节点进行编译操作和发布操作,直到所有当前节点都不存在待发布子节点,确定应用发布结束。
Description
技术领域
本申请涉及领域,具体而言,涉及一种多线程应用发布方法及装置。
背景技术
随着云服务技术的逐渐成熟,越来越多的企业使用微服务架构和k8s容器平台进行服务上云,并且应用数量和发布频率不断增加,从而使得发布应用的效率和成功率受到了比较大的挑战。
现有技术中,发布多个应用时,需要首先确定应用之间的依赖关系,并且需要提前定制完备的异常解决方案和备选方案,然后按照预定的顺序逐个进行编译发布,即一次只发布一个应用,且发布过程中可能遇到各种导致发布失败的问题,发布失败后,还需要通过重新发布上一版本的应用来进行版本回滚,再重新调试后重新发布新版本,这种发布方式效率极其低下。
发明内容
有鉴于此,本申请的目的在于提供一种多线程应用发布方法及装置,用于解决现有技术中如何提高多应用发布效率的问题。可以提升多应用发布的便捷度,能够进行多线程的应用编译发布,并且在提升多应用发布的效率的同时,在应用发布发生错误时能够快速回退到历史版本,保证了应用系统的稳定性。
第一方面,本申请实施例提供了一种多线程应用发布方法,该方法包括:
接收用户端上传的发布邻接表,并创建所述发布邻接表中各应用对应的待发布节点;所述发布邻接表包括多个应用的应用数据和各应用之间的依赖关系;
根据所述发布邻接表中各应用之间的依赖关系,将所述待发布节点中无父节点的至少一个待发布节点作为当前节点,并对各当前节点的应用数据进行编译操作;
将所述当前节点编译后的应用数据进行发布操作,并检测所述发布操作是否成功;
若所述发布操作成功,则将所述当前节点设置为发布完成状态;
查询所述当前节点是否存在至少一个待发布子节点;
若所述当前节点存在至少一个待发布子节点,则将当前节点的应用数据存入数据栈中,并将各待发布子节点作为新的当前节点进行编译操作和发布操作,直到所有当前节点都不存在待发布子节点,确定应用发布结束。
在一些实施例中,将各待发布子节点作为新的当前节点进行编译操作和发布操作,还包括:
检查所述待发布子节点是否有处于待发布状态的父节点;
若所述待发布子节点无处于待发布状态的父节点,则将该待发布子节点作为新的当前节点进行编译操作和发布操作。
在一些实施例中,将所述当前节点编译后的应用数据进行发布操作,并检测所述发布操作是否成功之后,还包括:
若所述发布操作失败,则停止对所有当前节点的操作,并将数据栈中应用数据按照入栈时间的倒序进行回退,直到数据栈中所述发布邻接表对应的应用数据全部完成回退。
在一些实施例中,查询所述当前节点是否存在至少一个待发布子节点之后,还包括:
若所述当前节点不存在待发布子节点,则将当前节点的应用数据存入数据栈中,并检查所述数据栈的栈长度与所述发布邻接表中的应用数是否相同;
当所述数据栈的栈长度与所述发布邻接表中的应用数相同时,确定所述发布邻接表中的所有应用全部发布完成。
在一些实施例中,检查所述数据栈的栈长度与所述发布邻接表中的应用数是否相同之后,还包括:
当所述数据栈的栈长度与所述发布邻接表中的应用数不同时,确定该当前节点所在的线程的应用全部发布完成,结束该当前节点所在的线程。
在一些实施例中,所述方法还包括:
通过在用户端上进行的拖拽操作,配置应用有向图;所述有向图包括多个应用和各应用之间的有向连接关系;
根据所述应用有向图,生成发布邻接表并进行上传。
第二方面,本申请实施例提供了一种多线程应用发布装置,该装置包括:
创建模块,用于接收用户端上传的发布邻接表,并创建所述发布邻接表中各应用对应的待发布节点;所述发布邻接表包括多个应用的应用数据和各应用之间的依赖关系;
编译模块,用于根据所述发布邻接表中各应用之间的依赖关系,将所述待发布节点中无父节点的至少一个待发布节点作为当前节点,并对各当前节点的应用数据进行编译操作;
发布模块,用于将所述当前节点编译后的应用数据进行发布操作,并检测所述发布操作是否成功;若所述发布操作成功,则将所述当前节点设置为发布完成状态;
查询模块,用于查询所述当前节点是否存在至少一个待发布子节点;若所述当前节点存在至少一个待发布子节点,则将当前节点的应用数据存入数据栈中,并将各待发布子节点作为新的当前节点进行编译操作和发布操作,直到所有当前节点都不存在待发布子节点,确定应用发布结束。
在一些实施例中,还包括:
配置模块,用于通过在用户端上进行的拖拽操作,配置应用有向图;所述有向图包括多个应用和各应用之间的有向连接关系;
上传模块,用于根据所述应用有向图,生成发布邻接表并进行上传。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中任一所述的方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述第一方面中任一所述的方法的步骤。
本申请实施例提出的一种多线程应用发布方法,通过预先设定的发布邻接表,创建各应用的待发布节点,并根据各应用间的依赖关系,按照各线程的顺序进行编译和发布,每个节点只有在其父节点都完成编译和发布之后才进行编译和发布,直到当前发布的各个线程的节点都不存在待发布的子节点时,就可确认应用发布任务结束。本申请实施例所提出的一种多线程应用发布方法可以提升多应用发布的便捷度,能够进行多线程的应用编译发布,并且在提升多应用发布的效率的同时,在应用发布发生错误时能够快速回退到历史版本,保证了应用系统的稳定性。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种多线程应用发布方法的流程示意图;
图2为本申请实施例提供的一种多线程应用发布方法中邻接表生成方法的流程示意图;
图3为本申请实施例提供的一种多线程应用发布装置的结构示意图;
图4为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种多线程应用发布方法,如图1所示,包括以下步骤:
步骤S101、接收用户端上传的发布邻接表,并创建上述发布邻接表中各应用对应的待发布节点;上述发布邻接表包括多个应用的应用数据和各应用之间的依赖关系;
步骤S102、根据上述发布邻接表中各应用之间的依赖关系,将上述待发布节点中无父节点的至少一个待发布节点作为当前节点,并对各当前节点的应用数据进行编译操作;
步骤S103、将上述当前节点编译后的应用数据进行发布操作,并检测上述发布操作是否成功;
步骤S104、若上述发布操作成功,则将上述当前节点设置为发布完成状态;
步骤S105、查询上述当前节点是否存在至少一个待发布子节点;
步骤S106、若上述当前节点存在至少一个待发布子节点,则将当前节点的应用数据存入数据栈中,并将各待发布子节点作为新的当前节点进行编译操作和发布操作,直到上述发布邻接表中当前节点不存在子节点。
具体地,发布邻接表中存储了要进行编译发布的多个应用的应用数据,以及各应用之间的依赖关系,也就是每个节点都至少有一个子节点或父节点。
在整个发布任务开始的时候没有父节点的待发布节点就是发布任务中各线程的起始节点,起始节点可能是一个或多个,将起始节点作为当前节点同时进行编译和发布,当起始节点发布成功后,会在起始节点的应用数据入栈后,将起始节点的待发布子节点作为新的当前节点继续进行编译和发布。
在一个节点的应用数据入栈后,会将该节点设置为发布完成状态,也就是将发布状态属性设置为null。
在新的当前节点发布成功后,继续查询该节点是否存在待发布子节点,如果存在,则继续进行上述编译和发布的步骤,如此循环,当所有线程的当前节点都不存在子节点后,就可以确认上述发布邻接表的应用发布任务结束。
在一些实施例中,步骤S106中,将各待发布子节点作为新的当前节点进行编译操作和发布操作,还包括:
步骤1061、检查上述待发布子节点是否有处于待发布状态的父节点;
步骤1062、若上述待发布子节点无处于待发布状态的父节点,则将该待发布子节点作为新的当前节点进行编译操作和发布操作。
具体地,可能存在一个待发布子节点有多个父节点的情况,由于应用间的依赖关系,该待发布子节点需要在所有父节点都已发布(发布状态属性为null)之后才能有完备的应用支持,因此,在该待发布子节点在进行编译和发布之前,需要对该待发布子节点的所有父节点的发布状态进行检查。
也就是,一个待发布节点是否能够作为当前节点的条件是该待发布节点的所有父节点的发布状态属性是否都为null。
在一些实施例中,步骤S103,还包括:
步骤107、若上述发布操作失败,则停止对所有当前节点的操作,并将数据栈中应用数据按照入栈时间的倒序进行回退,直到数据栈中上述发布邻接表对应的应用数据全部完成回退。
具体地,当有任意一个当前节点发布失败时,立即停止所有当前节点的发布,并开始版本的回滚。
已经存入数据栈的应用数据按照入栈时间的由后到前的顺序进行回退,直到所有上述发布邻接表中的应用的应用数据都完成回退,结束本次多应用发布,并向用户端反馈发布失败信息以及发生错误的具体应用。
在一些实施例中,步骤S105之后,还包括:
步骤1051、若上述当前节点不存在待发布子节点,则将当前节点的应用数据存入数据栈中,并检查上述数据栈的栈长度与上述发布邻接表中的应用数是否相同;
步骤1052、当上述数据栈的栈长度与上述发布邻接表中的应用数相同时,确定上述发布邻接表中的所有应用全部发布完成。
具体地,在任意一个当前节点发布完成后,且查询到该节点没有待发布子节点时,在该节点的应用数据入栈之后,对比数据栈的栈长度和发布邻接表中的应用数是否相同,如果相同就说明发布邻接表已经完成全应用发布,确认上述发布邻接表的应用发布任务结束。
在一些实施例中,步骤1051之后,还包括:
步骤1053、当上述数据栈的栈长度与上述发布邻接表中的应用数不同时,确定该当前节点所在的线程的应用全部发布完成,结束该当前节点所在的线程。
具体地,在对比数据栈的栈长度和发布邻接表中的应用数是否相同后,确定数据栈的栈长度和发布邻接表中的应用数不同(数据栈的栈长度小于发布邻接表中的应用数),则说明其他线程还有待发布节点,只结束该节点所在的线程。
在一些实施例中,如图2所示,上述方法还包括:
步骤S201、通过在用户端上进行的拖拽操作,配置应用有向图;上述有向图包括多个应用和各应用之间的有向连接关系;
步骤S202、根据上述应用有向图,生成发布邻接表并进行上传。
具体地,发布邻接表的生成是依据用户通过在用户端上的发布配置界面通过拖拽的操作将所要发布的应用拖拽到界面中,并通过箭头建立各应用之间的有向连接关系,构成该次多应用发布的应用有向图。用户端通过分析该应用有向图中各应用之间的依赖关系,生成发布邻接表。
本申请实施例还提供了一种多线程应用发布装置,如图3所示,该装置包括:
创建模块30,用于接收用户端上传的发布邻接表,并创建上述发布邻接表中各应用对应的待发布节点;上述发布邻接表包括多个应用的应用数据和各应用之间的依赖关系;
编译模块31,用于根据上述发布邻接表中各应用之间的依赖关系,将上述待发布节点中无父节点的至少一个待发布节点作为当前节点,并对各当前节点的应用数据进行编译操作;
发布模块32,用于将上述当前节点编译后的应用数据进行发布操作,并检测上述发布操作是否成功;若上述发布操作成功,则将上述当前节点设置为发布完成状态;
查询模块33,用于查询上述当前节点是否存在至少一个待发布子节点;若上述当前节点存在至少一个待发布子节点,则将当前节点的应用数据存入数据栈中,并将各待发布子节点作为新的当前节点进行编译操作和发布操作,直到上述发布邻接表中当前节点不存在子节点。
在一些实施例中,该装置还包括:
配置模块34,用于通过在用户端上进行的拖拽操作,配置应用有向图;上述有向图包括多个应用和各应用之间的有向连接关系;
上传模块35,用于根据上述应用有向图,生成发布邻接表并进行上传。
对应于图1中的一种多线程应用发布方法,本申请实施例还提供了一种计算机设备400,如图4所示,该设备包括存储器401、处理器402及存储在该存储器401上并可在该处理器402上运行的计算机程序,其中,上述处理器402执行上述计算机程序时实现上述一种多线程应用发布方法。
具体地,上述存储器401和处理器402能够为通用的存储器和处理器,这里不做具体限定,当处理器402运行存储器401存储的计算机程序时,能够执行上述一种多线程应用发布方法,解决了现有技术中如何提高多应用发布效率的问题。
对应于图1中的一种多线程应用发布方法,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述一种多线程应用发布方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述一种多线程应用发布方法,解决了现有技术中如何提高多应用发布效率的问题,本申请实施例所提出的一种多线程应用发布方法可以提升多应用发布的便捷度,能够进行多线程的应用编译发布,并且在提升多应用发布的效率的同时,在应用发布发生错误时能够快速回退到历史版本,保证了应用系统的稳定性。
在本申请所提供的实施例中,应该理解到,所揭露方法和装置,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种多线程应用发布方法,其特征在于,包括:
接收用户端上传的发布邻接表,并创建所述发布邻接表中各应用对应的待发布节点;所述发布邻接表包括多个应用的应用数据和各应用之间的依赖关系;所述待发布节点至少有一个子节点或父节点;
根据所述发布邻接表中各应用之间的依赖关系,将所述待发布节点中无父节点的至少一个待发布节点作为当前节点,并对各当前节点的应用数据进行编译操作;其中,无父节点的所述待发布节点是各线程的起始节点,所述起始节点的数量至少一个;
将所述当前节点编译后的应用数据进行发布操作,并检测所述发布操作是否成功;
若所述发布操作成功,则将所述当前节点设置为发布完成状态;
查询所述当前节点是否存在至少一个待发布子节点;
若所述当前节点存在至少一个待发布子节点,则将当前节点的应用数据存入数据栈中,并将各待发布子节点作为新的当前节点进行编译操作和发布操作,直到所有线程的当前节点都不存在待发布子节点,确定应用发布结束。
2.如权利要求1所述的方法,其特征在于,将各待发布子节点作为新的当前节点进行编译操作和发布操作,还包括:
检查所述待发布子节点是否有处于待发布状态的父节点;
若所述待发布子节点无处于待发布状态的父节点,则将该待发布子节点作为新的当前节点进行编译操作和发布操作。
3.如权利要求1所述的方法,其特征在于,将所述当前节点编译后的应用数据进行发布操作,并检测所述发布操作是否成功之后,还包括:
若所述发布操作失败,则停止对所有当前节点的操作,并将数据栈中应用数据按照入栈时间的倒序进行回退,直到数据栈中所述发布邻接表对应的应用数据全部完成回退。
4.如权利要求1所述的方法,其特征在于,查询所述当前节点是否存在至少一个待发布子节点之后,还包括:
若所述当前节点不存在待发布子节点,则将当前节点的应用数据存入数据栈中,并检查所述数据栈的栈长度与所述发布邻接表中的应用数是否相同;
当所述数据栈的栈长度与所述发布邻接表中的应用数相同时,确定所述发布邻接表中的所有应用全部发布完成。
5.如权利要求4所述的方法,其特征在于,检查所述数据栈的栈长度与所述发布邻接表中的应用数是否相同之后,还包括:
当所述数据栈的栈长度与所述发布邻接表中的应用数不同时,确定该当前节点所在的线程的应用全部发布完成,结束该当前节点所在的线程。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
通过在用户端上进行的拖拽操作,配置应用有向图;所述有向图包括多个应用和各应用之间的有向连接关系;
根据所述应用有向图,生成发布邻接表并进行上传。
7.一种多线程应用发布装置,其特征在于,包括:
创建模块,用于接收用户端上传的发布邻接表,并创建所述发布邻接表中各应用对应的待发布节点;所述发布邻接表包括多个应用的应用数据和各应用之间的依赖关系;所述待发布节点至少有一个子节点或父节点;
编译模块,用于根据所述发布邻接表中各应用之间的依赖关系,将所述待发布节点中无父节点的至少一个待发布节点作为当前节点,并对各当前节点的应用数据进行编译操作;其中,无父节点的所述待发布节点是各线程的起始节点,所述起始节点的数量至少一个;
发布模块,用于将所述当前节点编译后的应用数据进行发布操作,并检测所述发布操作是否成功;若所述发布操作成功,则将所述当前节点设置为发布完成状态;
查询模块,用于查询所述当前节点是否存在至少一个待发布子节点;若所述当前节点存在至少一个待发布子节点,则将当前节点的应用数据存入数据栈中,并将各待发布子节点作为新的当前节点进行编译操作和发布操作,直到所有线程的当前节点都不存在待发布子节点,确定应用发布结束。
8.如权利要求7所述的装置,其特征在于,还包括:
配置模块,用于通过在用户端上进行的拖拽操作,配置应用有向图;所述有向图包括多个应用和各应用之间的有向连接关系;
上传模块,用于根据所述应用有向图,生成发布邻接表并进行上传。
9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1-6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行上述权利要求1-6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010705710.XA CN111813440B (zh) | 2020-07-21 | 2020-07-21 | 一种多线程应用发布方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010705710.XA CN111813440B (zh) | 2020-07-21 | 2020-07-21 | 一种多线程应用发布方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111813440A CN111813440A (zh) | 2020-10-23 |
CN111813440B true CN111813440B (zh) | 2024-04-19 |
Family
ID=72861758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010705710.XA Active CN111813440B (zh) | 2020-07-21 | 2020-07-21 | 一种多线程应用发布方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111813440B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8924945B1 (en) * | 2012-10-04 | 2014-12-30 | Google Inc. | Managing dependencies on multi-threaded environment |
CN104915214A (zh) * | 2015-06-25 | 2015-09-16 | 走遍世界(北京)信息技术有限公司 | 系统的发布方法及装置 |
CN106155651A (zh) * | 2015-03-31 | 2016-11-23 | 广州四三九九信息科技有限公司 | 应用程序版本的自动化发布及更新的方法和系统 |
US9575738B1 (en) * | 2013-03-11 | 2017-02-21 | EMC IP Holding Company LLC | Method and system for deploying software to a cluster |
CN106487912A (zh) * | 2016-10-26 | 2017-03-08 | 北京荣之联科技股份有限公司 | 多服务应用的管理与发布方法及装置 |
CN108595316A (zh) * | 2018-04-20 | 2018-09-28 | 星环信息科技(上海)有限公司 | 分布式应用的生命周期管理方法、管理器、设备和介质 |
CN109636304A (zh) * | 2018-10-29 | 2019-04-16 | 浙江口碑网络技术有限公司 | 业务系统的发布方法及装置、存储介质、电子装置 |
CN109685465A (zh) * | 2018-12-24 | 2019-04-26 | 成都四方伟业软件股份有限公司 | 任务发布方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IES20010131A2 (en) * | 1999-12-20 | 2001-05-30 | Headway Res Ltd | System and method for computer-aided graph-based dependency analysis |
US9015710B2 (en) * | 2011-04-12 | 2015-04-21 | Pivotal Software, Inc. | Deployment system for multi-node applications |
CN111124596A (zh) * | 2018-11-01 | 2020-05-08 | 千寻位置网络有限公司 | 基于容器的发布管理方法及其系统 |
CN110661844A (zh) * | 2019-08-16 | 2020-01-07 | 北京旷视科技有限公司 | 自动发布调度系统、方法和存储介质 |
-
2020
- 2020-07-21 CN CN202010705710.XA patent/CN111813440B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8924945B1 (en) * | 2012-10-04 | 2014-12-30 | Google Inc. | Managing dependencies on multi-threaded environment |
US9575738B1 (en) * | 2013-03-11 | 2017-02-21 | EMC IP Holding Company LLC | Method and system for deploying software to a cluster |
CN106155651A (zh) * | 2015-03-31 | 2016-11-23 | 广州四三九九信息科技有限公司 | 应用程序版本的自动化发布及更新的方法和系统 |
CN104915214A (zh) * | 2015-06-25 | 2015-09-16 | 走遍世界(北京)信息技术有限公司 | 系统的发布方法及装置 |
CN106487912A (zh) * | 2016-10-26 | 2017-03-08 | 北京荣之联科技股份有限公司 | 多服务应用的管理与发布方法及装置 |
CN108595316A (zh) * | 2018-04-20 | 2018-09-28 | 星环信息科技(上海)有限公司 | 分布式应用的生命周期管理方法、管理器、设备和介质 |
CN109636304A (zh) * | 2018-10-29 | 2019-04-16 | 浙江口碑网络技术有限公司 | 业务系统的发布方法及装置、存储介质、电子装置 |
CN109685465A (zh) * | 2018-12-24 | 2019-04-26 | 成都四方伟业软件股份有限公司 | 任务发布方法及装置 |
Non-Patent Citations (1)
Title |
---|
面向服务的分布式操作系统及其上的服务组合关键技术研究;陈香兰;《中国博士学位论文全文数据库》;20080815(第2008年08期);I138-19 * |
Also Published As
Publication number | Publication date |
---|---|
CN111813440A (zh) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10235337B2 (en) | Distributed work flow using database replication | |
CN105955804B (zh) | 一种处理分布式事务的方法与设备 | |
CN102222042B (zh) | 基于云计算的软件自动化测试方法 | |
CN110413428B (zh) | 对账数据的处理方法、电子设备及存储介质 | |
CN107491371B (zh) | 一种监控部署的方法以及装置 | |
US20120227034A1 (en) | Incremental generation of managed assemblies | |
CN111752957A (zh) | 一种基于缓存化的销售锁定方法及系统 | |
CN112307045A (zh) | 一种数据同步方法及系统 | |
CN111813440B (zh) | 一种多线程应用发布方法及装置 | |
CN104182295A (zh) | 一种数据备份方法及装置 | |
JP2013534347A (ja) | 高性能コンピューティングアプリケーションの実行のためのシステムおよび方法 | |
CN103809947B (zh) | 一种开发需求的自动发布方法和系统 | |
CN106095606B (zh) | 一种服务器的软件故障处理方法和装置 | |
CN115756765A (zh) | 分布式事务处理方法及装置 | |
CN113886342A (zh) | 文件的格式转换方法、装置、存储介质及处理器 | |
US6606640B2 (en) | Method, computer program product, and system for modifying populated databases utilizing a reload utility | |
Paksula | Persisting objects in redis key-value database | |
CN111190768B (zh) | 数据库执行错误恢复方法、数据库访问方法及装置 | |
CN112445600A (zh) | 一种离线数据处理任务发布方法及系统 | |
CN116302526A (zh) | 一种作业调度系统、方法及其存储介质 | |
CN112650573B (zh) | 一种任务调度方法和装置 | |
CN116258362B (zh) | 工作流的生成方法、系统、设备及介质 | |
CN112991061B (zh) | 在区块链中并发执行交易的方法和装置 | |
CN118093630A (zh) | 数据源选择方法、装置、存储介质和电子设备 | |
CN117311950B (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 |