WO2021243665A1 - 编译方法、编译装置、编译系统、存储介质与电子设备 - Google Patents

编译方法、编译装置、编译系统、存储介质与电子设备 Download PDF

Info

Publication number
WO2021243665A1
WO2021243665A1 PCT/CN2020/094462 CN2020094462W WO2021243665A1 WO 2021243665 A1 WO2021243665 A1 WO 2021243665A1 CN 2020094462 W CN2020094462 W CN 2020094462W WO 2021243665 A1 WO2021243665 A1 WO 2021243665A1
Authority
WO
WIPO (PCT)
Prior art keywords
compilation
server
private
data
request
Prior art date
Application number
PCT/CN2020/094462
Other languages
English (en)
French (fr)
Inventor
刘彤庆
Original Assignee
深圳市欢太科技有限公司
Oppo广东移动通信有限公司
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 深圳市欢太科技有限公司, Oppo广东移动通信有限公司 filed Critical 深圳市欢太科技有限公司
Priority to CN202080100522.2A priority Critical patent/CN115552369A/zh
Priority to PCT/CN2020/094462 priority patent/WO2021243665A1/zh
Publication of WO2021243665A1 publication Critical patent/WO2021243665A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Definitions

  • the present disclosure relates to the field of computer technology, and in particular to compiling methods, compiling devices, compiling systems, computer-readable storage media, and electronic equipment.
  • Compilation refers to the conversion of the source code of a program into binary code that can be recognized by the computer.
  • compilation tasks of the same language are usually piled up on a fixed number of servers for compilation, so that each compilation task cannot be effectively supported by server resources, which affects compilation efficiency.
  • the present disclosure provides a compilation method, a compilation device, a compilation system, a computer-readable storage medium, and an electronic device, thereby at least improving the problems of high cluster operation cost and high resource overhead in related technologies to a certain extent.
  • a compilation method which includes: obtaining a compilation request initiated by a client; obtaining required compilation data according to the compilation request; determining a private compilation server pre-configured on the client; Invoke the private compilation server to process the compilation data; obtain a compilation product obtained by the private compilation server for processing the compilation data.
  • a compilation method including: a scheduling server receives a compilation request from a client, determines a task server, and sends the compilation request to the task server; the task server according to the The compilation request obtains the required compilation data, and determines that it is the private compilation server pre-configured on the user side, calls the private compilation server to process the compilation data; the private compilation server obtains the compilation product by processing the compilation data, The compiled product is returned to the task server.
  • a compiling device including: a compiling request obtaining module for obtaining a compiling request initiated by a user terminal; a compiled data obtaining module for obtaining required compiling data according to the compiling request
  • the calling module is used to determine the private compilation server pre-configured for the user side and call the private compilation server to process the compilation data; the compilation product acquisition module is used to acquire the private compilation server to process the compilation data The resulting compiled product.
  • a compilation system including a scheduling server, a task server, and a private compilation server; wherein the scheduling server is configured to receive a compilation request from a user, determine a task server, and combine the The compilation request is sent to the task server; the task server is used to obtain the required compilation data according to the compilation request, and determine it as a private compilation server pre-configured on the user side, and call the private compilation server processing office The compilation data; the private compilation server, used to obtain a compilation product by processing the compilation data, and return the compilation product to the task server.
  • a computer-readable storage medium on which a computer program is stored, and when the computer program is executed by a processor, the compilation method of the first or second aspect and possible implementations thereof are implemented .
  • an electronic device including: a processor; and a memory for storing executable instructions of the processor; wherein the processor is configured to execute the executable instructions Execute the above-mentioned compilation method of the first or second aspect and possible implementations thereof.
  • the private compilation server deploys the resources required by the user's compilation request, and the compilation tool version is relatively fixed, which solves the problem of the confusion of the compilation tool version in related technologies and avoids the situation of compilation failure due to the tool version.
  • the server can balance the pressure of various aspects when configuring a private compilation server for the client, thereby improving the abnormal situations that may occur in actual applications (such as concurrently sending a large number of compilation requests for a certain language in a short period of time, through the configuration
  • the balanced deployment of the private compilation server can prevent concurrent requests from being concentrated on certain servers, and ensure the performance and efficiency of the compilation service.
  • Fig. 1 shows an architecture diagram of a compiling system in this exemplary embodiment
  • FIG. 2 shows a flowchart of a compilation method in this exemplary embodiment
  • FIG. 3 shows a flowchart of obtaining compiled data in this exemplary embodiment
  • FIG. 4 shows a flowchart of calling a private compilation server in this exemplary embodiment
  • FIG. 5 shows a flowchart of another compilation method in this exemplary embodiment
  • Fig. 6 shows a structural diagram of a compiling device in this exemplary embodiment
  • Fig. 7 shows an electronic device for implementing the above-mentioned method in this exemplary embodiment.
  • the compilation system may include: a user terminal 110, a scheduling server 120, a task server 130, a compilation server 140, a database 150, a code warehouse 160, and a product warehouse 170.
  • the client 110 is a terminal device such as a computer, a smart phone, or a tablet computer used by the user.
  • the client 110 may also specifically refer to a browser.
  • the scheduling server 120 is usually deployed at the front end to schedule the compilation request initiated by the client 110 and assign it to a suitable task server 130.
  • the task server 130 is usually deployed at the back end of the scheduling server 120 to execute compilation requests and call the compilation server 140.
  • the compiling server 140 is used to perform compiling tasks, such as compiling the source code of a program into binary code.
  • the database 150 is used to store relevant data required for compilation, such as various compilation-related parameters with a program as the dimension.
  • the database 150 can be set as a relational database MySQL, or other data systems can be used.
  • the code repository 160 is used to store source codes required for compilation, such as git, Java, and Python codes.
  • the product warehouse 170 is used to store compiled products, such as compiled program binary codes.
  • the scheduling server 120, the task server 130, and the compilation server 140 may be deployed in a distributed manner to process a large number of compilation requests in parallel.
  • any number of other devices can also be provided, for example, two or more code repositories 160 can be provided to support the situation where multiple task servers 130 need to read source codes in parallel.
  • the architecture of the compilation system can also be appropriately adjusted, for example, the scheduling server 120 and the task server 130 can be deployed on the same physical machine to realize the scheduling and execution of the compilation request.
  • the exemplary embodiment of the present disclosure provides a compilation method, which can be executed by the above-mentioned task server 130.
  • Figure 2 shows a schematic flow of the compilation method, which may include the following steps S210 to S240:
  • Step S210 Obtain a compilation request initiated by the client.
  • the task server may receive the compilation request sent from the dispatch server, or may directly obtain the compilation request from the user side.
  • the client can edit the compilation request through the browser and send it to the dispatch server, and the dispatch server according to the compilation type in the compilation request (such as which type of program to compile), or according to the load balancing mechanism , Select the appropriate task server, and then send the compilation request to the task server.
  • the compilation type in the compilation request such as which type of program to compile
  • the load balancing mechanism Select the appropriate task server, and then send the compilation request to the task server.
  • step S220 the required compilation data is obtained according to the aforementioned compilation request.
  • the compilation data refers to the relevant data required for this compilation, and may include the source code of the program to be compiled for which compilation is requested, the construction parameters of this compilation (such as compilation environment parameters, tool version parameters), and so on.
  • step S220 may specifically include the following steps S310 and S320:
  • Step S310 Obtain the construction parameters of the compilation request from the dispatch server
  • Step S320 Obtain the source code of the program to be compiled from the code repository, and the program to be compiled is the program in the compilation request.
  • the program to be compiled is the program requested to be compiled this time.
  • the general user will enter the name, version number or other identification information of the program to be compiled.
  • the dispatch server can determine the program to be compiled by parsing the compilation request, and can also obtain other related information, such as which language the source code of the program to be compiled is in, and the operating system environment.
  • the scheduling server can assemble the construction parameters of this compilation based on this information and send them to the task server.
  • the task server can find and obtain the source code of the program to be compiled from the code warehouse, without the user side uploading the source code, which improves the efficiency of compilation and protects the security of the source code.
  • step S230 it is determined that it is a private compilation server pre-configured on the user side, and the private compilation server is called to process the compiled data.
  • the private compilation server includes a private physical server or a private container deployed on the compilation server. That is, the server can specifically deploy a physical machine for a user to process the user's program compilation request, or set a container for the user on the physical machine, and process the user's program compilation request through the container. Whether it is a private physical server or a private container, users can independently maintain the compilation configuration parameters and resources in it.
  • the server Before the user requests compilation for the first time, he can apply for private compilation resources from the server.
  • the server generates a new container on the compilation server according to the user's needs, and allocates it to the user.
  • the user can set the CPU and memory resources required by the container, and configure the compilation parameters. If the user's daily business is to compile Java-based programs in the Linux system, the corresponding compilation tools can be installed in the container; in addition, services can be installed Proxy service provided by the client.
  • Users can also modify and update the configuration of the private compilation server according to their own business needs, or dynamically expand the compilation resources. For example, when the user's commonly used operating system changes, they can modify the configuration parameters of the compilation environment in the private compilation server, etc. .
  • the task server can determine the private compilation server on the user side according to the user ID, or the source address information in the compilation request, browser information, etc., and then call the private compilation server to process the above-mentioned compilation data. , That is, the process of executing the compilation.
  • the server can also optimize the deployment of the private compilation server. For example, when more users use private containers, these containers can be diverted to different compilation servers (hosts) to reduce the pressure on the same compilation server to process parallel compilation tasks.
  • hosts compilation servers
  • the private compilation server may be called to process compilation data through the following steps S410 and S420:
  • Step S410 establishing a working area according to the compiled data
  • Step S420 Invoke the compiled data in the operating workspace of the private compilation server through the proxy service set on the private compilation server.
  • the work area can be regarded as a specific directory divided on the task server, which is used to store the compilation data and related resources in this compilation. Different work areas are generally independent of each other to ensure that parallel compilation tasks do not interfere with each other.
  • the proxy service is provided by the server, and is generally pre-installed by the user on the private compilation server to provide a channel for interaction between the task server and the private compilation server.
  • the task server synchronizes compilation tasks to the private compilation server through the proxy service.
  • the private compilation server is called to execute the compilation task, and the private compilation server obtains the compilation data from the working area of the task server for compilation.
  • the task server can also monitor the compilation log returned by the proxy service, and return the compilation log to the client. Specifically, during the execution of the compilation by the private compilation server, compilation logs will be continuously generated.
  • the proxy service can send the compilation logs back to the task server in real time; the task server can detect the abnormalities in the compilation in time by monitoring the compilation logs, such as a paragraph When a new log is not generated in time, the private compilation server can be called to re-awaken the compilation task, etc.
  • the abnormal discovery and handling of the compilation log can be realized.
  • the task server can also upload it to the log storage system (it can be an independent data system or a subsystem divided from the database that stores the compiled data); the dispatch server obtains the compilation log from the log storage system , And finally return to the user side to be displayed. Allows users to see the compilation log during the compilation process, so as to understand the progress of the compilation.
  • the synchronization cycle of each link can be the same or different.
  • the task server uploads the compilation log to the log storage system according to the first cycle, and the scheduling server stores the log from the log according to the second cycle.
  • the system reads the compilation log and returns to the user terminal according to the third cycle.
  • Step S240 Obtain the compilation product obtained by the above-mentioned private compilation server processing the compilation data.
  • the compiled product mainly refers to the compiled file obtained by compiling the source code of the program.
  • the task server can synchronously obtain the compiled product in the form of a data packet during the compilation process, or obtain the complete compiled product after the compilation is completed or.
  • the task server may obtain the compiled product through the foregoing proxy service. Obtaining the complete compilation product indicates that the compilation is complete.
  • the compilation method may further include the following steps:
  • step S250 when it is determined that the private compilation server pre-configured for the user terminal is empty, the compilation data is processed to obtain the corresponding compilation product.
  • the result of the task server searching for the private compilation server is generally a null value.
  • the compilation can be performed directly on the task server.
  • the task server may establish a work area, obtain corresponding tools, allocate corresponding resources, and then process the compiled data in the work area to execute the compilation process and obtain the corresponding compilation product.
  • the compilation tasks are essentially split on the back-end, that is, when the private compilation server is configured on the user side, compilation is executed on the private compilation server, and when the user does not configure the private compilation server, the compilation is executed on the task server. Reduce the pressure of private compilation server or task server, improve compilation efficiency.
  • step S260 the compiled product is stored in the product warehouse.
  • the server can also open a specific interface associated with the product warehouse, so that the user can access the interface to download the required compiled files.
  • FIG. 5 shows the flow of the compilation method executed with the entire compilation system as the main body, which may include the following steps S510 to S530:
  • Step S510 the dispatch server receives the compilation request from the client, determines a task server, and sends the compilation request to the task server;
  • step S520 the task server obtains the required compilation data according to the above compilation request, determines that it is a private compilation server pre-configured on the user side, and calls the private compilation server to process the compilation data;
  • step S530 the private compilation server obtains the compilation product by processing the compilation data, and returns the compilation product to the task server.
  • the private compilation server by configuring a private compilation server for the user side to specifically process the compilation request of the user side, the compilation efficiency and compilation quality can be improved.
  • the private compilation server deploys the resources required by the user's compilation request, and the compilation tool version is relatively fixed, which solves the problem of the confusion of the compilation tool version in related technologies and avoids the situation of compilation failure due to the tool version.
  • the server can balance the pressure of various aspects when configuring a private compilation server for the client, thereby improving the abnormal situations that may occur in actual applications (such as concurrently sending a large number of compilation requests for a certain language in a short period of time, through the configuration
  • the balanced deployment of the private compilation server can prevent concurrent requests from being concentrated on certain servers, and ensure the performance and efficiency of the compilation service.
  • Exemplary embodiments of the present disclosure also provide a compiling device, which can be deployed on a task server.
  • the compiling apparatus 600 may include:
  • the compilation request obtaining module 610 is used to obtain the compilation request initiated by the client;
  • the compiled data obtaining module 620 is configured to obtain the required compiled data according to the above-mentioned compilation request
  • the calling module 630 is used to determine a private compilation server pre-configured for the user side, and call the private compilation server to process the above-mentioned compilation data;
  • the compilation product obtaining module 640 is configured to obtain the compilation product obtained by the aforementioned private compilation server processing the compilation data.
  • the compilation request obtaining module 610 is configured to:
  • the compilation request sent from the dispatch server is received, and the compilation request is sent to the dispatch server from the user end.
  • the compiled data acquisition module 620 is configured to:
  • the private compilation server includes a private physical server, or a private container deployed on the compilation server.
  • the compiled product obtaining module 640 is configured to:
  • the compilation data is processed to obtain the corresponding compilation product.
  • the calling module 630 is configured to:
  • the private compilation server is called to run the compilation data in the workspace.
  • the calling module 630 is configured to:
  • the compilation product obtaining module 640 is further configured to store the compilation product in the product warehouse after obtaining the compilation product.
  • Exemplary embodiments of the present disclosure also provide a computer-readable storage medium on which is stored a program product capable of implementing the above-mentioned method of this specification.
  • various aspects of the present disclosure can also be implemented in the form of a program product, which includes program code.
  • the program product runs on an electronic device, the program code is used to make the electronic device execute the above-mentioned instructions in this specification.
  • the steps according to various exemplary embodiments of the present disclosure are described in the "Exemplary Methods" section.
  • the program product can adopt a portable compact disk read-only memory (CD-ROM) and include program code, and can run on an electronic device, such as a personal computer.
  • the program product of the present disclosure is not limited thereto.
  • the readable storage medium can be any tangible medium that contains or stores a program, and the program can be used by or in combination with an instruction execution system, device, or device.
  • the program product can adopt any combination of one or more readable media.
  • the readable medium may be a readable signal medium or a readable storage medium.
  • the readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or a combination of any of the above. More specific examples (non-exhaustive list) of readable storage media include: electrical connections with one or more wires, portable disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable Type programmable read only memory (EPROM or flash memory), optical fiber, portable compact disk read only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the above.
  • the computer-readable signal medium may include a data signal propagated in baseband or as a part of a carrier wave, and readable program code is carried therein. This propagated data signal can take many forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the foregoing.
  • the readable signal medium may also be any readable medium other than a readable storage medium, and the readable medium may send, propagate, or transmit a program for use by or in combination with the instruction execution system, apparatus, or device.
  • the program code contained on the readable medium can be transmitted by any suitable medium, including but not limited to wireless, wired, optical cable, RF, etc., or any suitable combination of the foregoing.
  • the program code for performing the operations of the present disclosure can be written in any combination of one or more programming languages.
  • the programming languages include object-oriented programming languages—such as Java, C++, etc., as well as conventional procedural programming. Language-such as "C" language or similar programming language.
  • the program code can be executed entirely on the user's computing device, partly on the user's device, executed as an independent software package, partly on the user's computing device and partly executed on the remote computing device, or entirely on the remote computing device or server Executed on.
  • the remote computing device can be connected to a user computing device through any kind of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computing device (for example, using Internet service providers). Shanglai is connected via the Internet).
  • Exemplary embodiments of the present disclosure also provide an electronic device capable of implementing the above method.
  • the electronic device 700 according to this exemplary embodiment of the present disclosure will be described below with reference to FIG. 7.
  • the electronic device 700 shown in FIG. 7 is only an example, and should not bring any limitation to the function and scope of use of the embodiments of the present disclosure.
  • the electronic device 700 may be represented in the form of a general-purpose computing device.
  • the components of the electronic device 700 may include but are not limited to: at least one processing unit 710, at least one storage unit 720, a bus 730 connecting different system components (including the storage unit 720 and the processing unit 710), and a display unit 740.
  • the storage unit 720 stores program codes, and the program codes can be executed by the processing unit 710 so that the processing unit 710 executes the steps according to various exemplary embodiments of the present disclosure described in the above-mentioned "Exemplary Method" section of this specification.
  • the processing unit 710 may execute the method steps shown in FIG. 2, FIG. 3, FIG. 4, or FIG. 5, etc.
  • the storage unit 720 may include a readable medium in the form of a volatile storage unit, such as a random access storage unit (RAM) 721 and/or a cache storage unit 722, and may further include a read-only storage unit (ROM) 723.
  • RAM random access storage unit
  • ROM read-only storage unit
  • the storage unit 720 may also include a program/utility tool 724 having a set of (at least one) program module 725.
  • program module 725 includes but is not limited to: an operating system, one or more application programs, other program modules, and program data, Each of these examples or some combination may include the implementation of a network environment.
  • the bus 730 may represent one or more of several types of bus structures, including a storage unit bus or a storage unit controller, a peripheral bus, a graphics acceleration port, a processing unit, or a local area using any bus structure among multiple bus structures. bus.
  • the electronic device 700 may also communicate with one or more external devices 800 (such as keyboards, pointing devices, Bluetooth devices, etc.), and may also communicate with one or more devices that enable a user to interact with the electronic device 700, and/or communicate with Any device (such as a router, modem, etc.) that enables the electronic device 700 to communicate with one or more other computing devices. This communication can be performed through an input/output (I/O) interface 750.
  • the electronic device 700 may also communicate with one or more networks (such as a local area network (LAN), a wide area network (WAN), and/or a public network, such as the Internet) through the network adapter 760. As shown in the figure, the network adapter 760 communicates with other modules of the electronic device 700 through the bus 730.
  • LAN local area network
  • WAN wide area network
  • public network such as the Internet
  • the exemplary embodiments described herein can be implemented by software, or can be implemented by combining software with necessary hardware. Therefore, the technical solution according to the embodiments of the present disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, U disk, mobile hard disk, etc.) or on the network , Including several instructions to make a computing device (which may be a personal computer, a server, a terminal device, or a network device, etc.) execute the method according to the exemplary embodiment of the present disclosure.
  • a computing device which may be a personal computer, a server, a terminal device, or a network device, etc.
  • modules or units of the device for action execution are mentioned in the above detailed description, this division is not mandatory.
  • the features and functions of two or more modules or units described above may be embodied in one module or unit.
  • the features and functions of a module or unit described above can be further divided into multiple modules or units to be embodied.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本公开提供了一种编译方法、编译装置、编译系统、存储介质与电子设备。编译方法包括:获取由用户端发起的编译请求;根据编译请求获取所需的编译数据;确定为用户端预先配置的私有编译服务器,调用私有编译服务器处理编译数据;获取私有编译服务器处理编译数据所得到的编译产物。本公开提高了编译效率与编译质量,并解决了相关技术中编译工具版本混乱的问题,避免因为工具版本原因导致编译失败的情况。

Description

编译方法、编译装置、编译系统、存储介质与电子设备 技术领域
本公开涉及计算机技术领域,尤其涉及编译方法、编译装置、编译系统、计算机可读存储介质与电子设备。
背景技术
编译是指将程序的源代码转换为计算机可识别的二进制代码。相关技术中,相同语言的编译任务通常堆积到固定的某几台服务器上进行编译,这样导致每个编译任务无法得到服务器资源的有效支持,影响编译效率。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供了编译方法、编译装置、编译系统、计算机可读存储介质与电子设备,进而至少在一定程度上改善相关技术中集群运营成本较高与资源开销较高的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的第一方面,提供一种编译方法,包括:获取由用户端发起的编译请求;根据所述编译请求获取所需的编译数据;确定为所述用户端预先配置的私有编译服务器,调用所述私有编译服务器处理所述编译数据;获取所述私有编译服务器处理所述编译数据所得到的编译产物。
根据本公开的第二方面,提供一种编译方法,包括:调度服务器从用户端接收编译请求,确定一任务服务器,并将所述编译请求发送至所述任务服务器;所述任务服务器根据所述编译请求获取所需的编译数据,并确定为所述用户端预先配置的私有编译服务器,调用所述私有编译服务器处理所述编译数据;所述私有编译服务器通过处理所述编译数据得到编译产物,将所述编译产物返回所述任务服务器。
根据本公开的第三方面,提供一种编译装置,包括:编译请求获取模块,用于获取由用户端发起的编译请求;编译数据获取模块,用于根据所述编译请求获取所需的编译数据;调用模块,用于确定为所述用户端预先配置的私有编译服务器,调用所述私有编译服务器处理所述编译数据;编译产物获取模块,用于获取所述私有编译服务器处理所述编译数据所得到的编译产物。
根据本公开的第四方面,提供一种编译系统,包括调度服务器、任务服务器和私有编译服务器;其中,所述调度服务器,用于从用户端接收编译请求,确定一任务服务器,并将所述编译请求发送至所述任务服务器;所述任务服务器,用于根据所述编译请求获取所需的编译数据,并确定为所述用户端预先配置的私有编译服务器,调用所述私有编译服务器处理所述编译数据;所述私有编译服务器,用于通过处理所述编译数据得到编译产物,将所述编译产物返回所述任务服务器。
根据本公开的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一或第二方面的编译方法及其可能的实现方式。
根据本公开的第六方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述第一或第二方面的编译方法及其可能的实现方式。
本公开的技术方案具有以下有益效果:
一方面,通过为用户端配置私有编译服务器,以针对性处理用户端的编译请求,能够提高编译效率与编译质量。另一方面,私有编译服务器上部署用户编译请求所需的资源,编译工具版本较为固定,解决相关技术中编译工具版本混乱的问题,避免因为工具版本原因导致编译失败的情况。再一方面,服务端可以在为用户端配置私有编译服务器时,均衡各方面的压力,从而改善实际应用中可能发生的异常情况(如短时间内并发大量某种语言的编译请求,通过在配置私有编译服务器时进行均衡部署,可以防止并发请求集中都某几台服务器上),保证编译服务的性能与效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性 的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施方式,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本示例性实施方式中一种编译系统的架构图;
图2示出本示例性实施方式中一种编译方法的流程图;
图3示出本示例性实施方式中获取编译数据的流程图;
图4示出本示例性实施方式中调用私有编译服务器的流程图;
图5示出本示例性实施方式中另一种编译方法的流程图;
图6示出本示例性实施方式中一种编译装置的结构图;
图7示出本示例性实施方式中用于实现上述方法的电子设备。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的 实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
相关技术中,由于不同编译服务器上依赖的编译工具版本不一,在编译时可能需要在编译服务器上反复地安装与卸载编译工具,影响编译效率,同时导致编译服务器工具版本的混乱。
鉴于上述一个或多个问题,本公开的示例性实施方式首先提供一种编译系统。如图1所示,该编译系统可以包括:用户端110、调度服务器120、任务服务器130、编译服务器140、数据库150、代码仓库160和产物仓库170。其中,用户端110是用户所使用的电脑、智能手机、平板电脑等终端设备,当用户通过终端设备上的浏览器向服务器发起编译请求时,用户端110也可以具体指浏览器。调度服务器120通常部署在前端,对用户端110发起的编译请求进行调度,分配至合适的任务服务器130,此外还可以组装编译所需的相关参数。任务服务器130通常部署在调度服务器120的后端,用于执行编译请求,并对编译服务器140进行调用。编译服务器140用于执行编译任务,如将程序的源代码编译为二进制代码。数据库150用于存储编译所需的相关数据,如以程序为维度的各项编译关联参数,数据库150可以设置为关系数据库MySQL,也可以采用其他数据系统。代码仓库160用于存储编译所需的源代码,如git、Java、Python代码等。产物仓库170用于存储编译产物,如编译后的程序二进制代码等。
应当理解,上述编译系统中,调度服务器120、任务服务器130和编译服务器140可以采用分布式部署,以并行处理大量的编译请求。根据实际需求,也可以设置任意数量的其他装置,例如设置两个或两个以上代码仓库160,以支持多个任务服务器130需要并行读取源代码的情况。此外,还可以对编译系统的架构进行适当调整,例如将调度服务器120和任务服务器130部署到同一台物理机上,以实现编译请求的调度与执行。
基于上述编译系统,本公开的示例性实施方式提供一种编译方法,可以由上述任务服务器130执行。图2示出了该编译方法的示意性流程,可以包括以下步骤S210至S240:
步骤S210,获取由用户端发起的编译请求。
其中,任务服务器可以接收从调度服务器发送的编译请求,也可以直接从用户端获取编译请求。
在一种可选的实施方式中,用户端可以通过浏览器编辑编译请求,并发送至调度服务器,调度服务器根据编译请求中的编译类型(如编译哪一类的程序),或者按照负载均衡机制,选择合适的任务服务器,然后将编译请求发送至该任务服务器。
步骤S220,根据上述编译请求获取所需的编译数据。
其中,编译数据是指进行本次编译所需的相关数据,可以包括所请求编译的待编译程序的源代码,本次编译的构建参数(如编译环境参数,工具版本参数)等。
在一种可选的实施方式中,参考图3所示,步骤S220可以具体包括以下步骤S310和S320:
步骤S310,从调度服务器获取编译请求的构建参数;
步骤S320,从代码仓库获取待编译程序的源代码,待编译程序为编译请求中的程序。
如上所述,待编译程序是本次请求编译的程序,一般用户在编辑编译请求时,会输入待编译程序的名称、版本号或其他标识信息。调度服务器在获取编译请求后,通过解析编译请求,可以确定待编译程序,还可以得到其他相关信息,如待编译程序的源代码是哪种语言,操作系统环境等。调度服务器根据这些信息可以组装本次编译的构建参数,并发送至任务服务器。
任务服务器可以从代码仓库查找并获取待编译程序的源代码,无需用户端上传源代码,这样提高了编译效率,同时保护了源代码的安全性。
步骤S230,确定为用户端预先配置的私有编译服务器,调用该私有编译服务器处理编译数据。
本示例性实施方式中,支持用户配置自己的私有编译服务器并选择编译环境。私有编译服务器包括私有物理服务器,或者部署于编译服务器的私有容器。即服务端可以为某个用户专门部署一台物理机,用于该用户的程序编译请求处理,也可以在物理机上为该用户设置一个容器,通过容器处理该用 户的程序编译请求。无论是私有物理服务器还是私有容器,用户都可以独立维护其中的编译配置参数与资源。
举例来说,用户首次请求编译前,可以向服务端申请私有编译资源,服务端根据用户的需求,在编译服务器上生成新的容器,分配给该用户。用户可以设置该容器所需的CPU以及内存资源,同时配置编译参数,如用户的日常业务是编译Linux系统中基于Java语言的程序,则可以在容器内安装相应的编译工具;另外还可以安装服务端提供的代理服务。
用户还可以根据自身业务需求的变化,修改与更新私有编译服务器的配置,或者对编译资源进行动态扩展,例如当用户常用的操作系统变化时,可以修改私有编译服务器中关于编译环境的配置参数等。
可见,一部分用户预先配置了私有编译服务器,任务服务器可以根据用户标识、或者编译请求中的源地址信息、浏览器信息等,确定该用户端的私有编译服务器,然后调用该私有编译服务器处理上述编译数据,即执行编译的过程。
需要说明的是,服务端还可以对私有编译服务器的部署进行优化。例如,当有较多用户使用私有容器时,可以将这些容器分流到不同的编译服务器(宿主机)上,以减小同一台编译服务器处理并行编译任务的压力。
在一种可选的实施方式中,参考图4所示,可以通过以下步骤S410和S420调用私有编译服务器处理编译数据:
步骤S410,根据编译数据建立工作区;
步骤S420,通过在私有编译服务器上设置的代理服务,调用私有编译服务器运行工作区内的编译数据。
其中,工作区可视为任务服务器上划分出的特定目录,用于存放本次编译中的编译数据和相关资源等。不同工作区之间一般是相互独立的,保证并行的编译任务之间互不干扰。
代理服务由服务端提供,一般由用户预先安装在私有编译服务器上,用于提供任务服务器与私有编译服务器之间交互的通道,例如,任务服务器通过代理服务将编译任务同步至私有编译服务器,以调用私有编译服务器执行编译任务,私有编译服务器从任务服务器的工作区内获取编译数据,以进行 编译。
进一步的,任务服务器还可以监控由代理服务返回的编译日志,并向用户端返回编译日志。具体来说,在私有编译服务器执行编译的过程中,会不断产生编译日志,代理服务可以将编译日志实时回传到任务服务器;任务服务器通过监控编译日志,可以及时发现编译中的异常,例如一段时间未产生新的日志时,可以调用私有编译服务器重新唤醒编译任务等,通过在任务服务器或代理服务上设置相应的规则,可以实现编译日志中的异常发现与处置。除了监控编译日志外,任务服务器还可以将其上传至日志存储系统(可以是独立的数据系统,也可以是存储编译数据的数据库中划分出的子系统);调度服务器从日志存储系统获取编译日志,并最终返回到用户端,予以展示。使用户在编译过程中可以看到编译日志,从而了解编译的进展情况。需要说明的是,上述编译日志的同步过程中,各环节的同步周期可以相同,也可以不同,如任务服务器按照第一周期将编译日志上传至日志存储系统,调度服务器按照第二周期从日志存储系统读取编译日志,并按照第三周期返回至用户端。
步骤S240,获取上述私有编译服务器处理编译数据所得到的编译产物。
其中,编译产物主要指编译程序源代码所得到的编译文件。任务服务器可以在编译过程中,以数据包等形式同步获取编译产物,也可以在编译完成或,获取完整的编译产物。在一种可选的实施方式中,任务服务器可以通过上述代理服务获取编译产物。获取完整的编译产物表示编译完成。
在一种可选的实施方式中,参考上述图2所示,编译方法还可以包括以下步骤:
步骤S250,当确定为用户端预先配置的私有编译服务器为空时,处理编译数据,以获取对应的编译产物。
用户端未配置私有编译服务器时,任务服务器查找私有编译服务器的结果一般为空值,在此情况下可以直接在任务服务器上执行编译。在一种可选的实施方式中,任务服务器可以建立工作区,获取相应的工具,分配相应的资源,然后对工作区内的编译数据进行处理,以执行编译过程,获取到对应的编译产物。通常这样的方式,实质上在后端对编译任务进行了分流,即用 户端配置私有编译服务器时,在私有编译服务器上执行编译,用户未配置私有编译服务器时,在任务服务器上执行编译,从而减小了私有编译服务器或任务服务器的压力,提高编译效率。
在一种可选的实施方式中,参考上述图2所示,在获取编译产物之后,还可以继续执行以下步骤:
步骤S260,将编译产物存储至产物仓库。
通过产物仓库,对编译产物进行专门存储,以便于后续使用。服务端还可以开放与产物仓库关联的特定接口,便于用户端通过访问该接口,下载所需的编译文件。
图5示出了以整个编译系统为主体而执行的编译方法的流程,可以包括以下步骤S510至S530:
步骤S510,调度服务器从用户端接收编译请求,确定一任务服务器,并将编译请求发送至该任务服务器;
步骤S520,任务服务器根据上述编译请求获取所需的编译数据,并确定为用户端预先配置的私有编译服务器,调用该私有编译服务器处理编译数据;
步骤S530,私有编译服务器通过处理编译数据得到编译产物,将编译产物返回任务服务器。
基于上述内容,本示例性实施方式中,一方面,通过为用户端配置私有编译服务器,以针对性处理用户端的编译请求,能够提高编译效率与编译质量。另一方面,私有编译服务器上部署用户编译请求所需的资源,编译工具版本较为固定,解决相关技术中编译工具版本混乱的问题,避免因为工具版本原因导致编译失败的情况。再一方面,服务端可以在为用户端配置私有编译服务器时,均衡各方面的压力,从而改善实际应用中可能发生的异常情况(如短时间内并发大量某种语言的编译请求,通过在配置私有编译服务器时进行均衡部署,可以防止并发请求集中都某几台服务器上),保证编译服务的性能与效率。
本公开的示例性实施方式还提供一种编译装置,其可以部署于任务服务器。如图6所示,该编译装置600可以包括:
编译请求获取模块610,用于获取由用户端发起的编译请求;
编译数据获取模块620,用于根据上述编译请求获取所需的编译数据;
调用模块630,用于确定为用户端预先配置的私有编译服务器,调用该私有编译服务器处理上述编译数据;
编译产物获取模块640,用于获取上述私有编译服务器处理编译数据所得到的编译产物。
在一种可选的实施方式中,编译请求获取模块610,被配置为:
接收从调度服务器发送的编译请求,该编译请求由用户端发送至调度服务器。
在一种可选的实施方式中,编译数据获取模块620,被配置为:
从调度服务器获取编译请求的构建参数;
从代码仓库获取待编译程序的源代码,待编译程序为编译请求中的程序。
在一种可选的实施方式中,私有编译服务器包括私有物理服务器,或者部署于编译服务器的私有容器。
在一种可选的实施方式中,编译产物获取模块640,被配置为:
当确定为用户端预先配置的私有编译服务器为空时,处理编译数据,以获取对应的编译产物。
在一种可选的实施方式中,调用模块630,被配置为:
根据编译数据建立工作区;
通过在私有编译服务器上设置的代理服务,调用私有编译服务器运行工作区内的编译数据。
在一种可选的实施方式中,调用模块630,被配置为:
监控由代理服务返回的编译日志,并向用户端返回编译日志。
在一种可选的实施方式中,编译产物获取模块640,还用于在获取编译产物之后,将编译产物存储至产物仓库。
上述装置中各部分的具体细节在方法部分实施方式中已经详细说明,未披露的细节内容可以参见方法部分的实施方式内容,因而不再赘述。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即: 完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
本公开的示例性实施方式还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。该程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、 C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本公开的示例性实施方式还提供了一种能够实现上述方法的电子设备。下面参照图7来描述根据本公开的这种示例性实施方式的电子设备700。图7显示的电子设备700仅仅是一个示例,不应对本公开实施方式的功能和使用范围带来任何限制。
如图7所示,电子设备700可以以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:至少一个处理单元710、至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730和显示单元740。
存储单元720存储有程序代码,程序代码可以被处理单元710执行,使得处理单元710执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,处理单元710可以执行图2、图3、图4或图5所示的方法步骤等。
存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)721和/或高速缓存存储单元722,还可以进一步包括只读存储单元(ROM)723。
存储单元720还可以包括具有一组(至少一个)程序模块725的程序/实用工具724,这样的程序模块725包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备700也可以与一个或多个外部设备800(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备700交互的设备通信,和/或与使得该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器760通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开示例性实施方式的方法。
此外,上述附图仅是根据本公开示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本申请旨在涵盖本公开的任何变型、用途或者适 应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。

Claims (13)

  1. 一种编译方法,其特征在于,包括:
    获取由用户端发起的编译请求;
    根据所述编译请求获取所需的编译数据;
    确定为所述用户端预先配置的私有编译服务器,调用所述私有编译服务器处理所述编译数据;
    获取所述私有编译服务器处理所述编译数据所得到的编译产物。
  2. 根据权利要求1所述的方法,其特征在于,所述获取由用户端发起的编译请求,包括:
    接收从调度服务器发送的所述编译请求,所述编译请求由所述用户端发送至所述调度服务器。
  3. 根据权利要求2所述的方法,其特征在于,所述根据所述编译请求获取所需的编译数据,包括:
    从所述调度服务器获取所述编译请求的构建参数;
    从代码仓库获取待编译程序的源代码,所述待编译程序为所述编译请求中的程序。
  4. 根据权利要求1所述的方法,其特征在于,所述私有编译服务器包括私有物理服务器,或者部署于编译服务器的私有容器。
  5. 根据权利要求1所述的方法,其特征在于,所述方法还包括:
    当确定为所述用户端预先配置的私有编译服务器为空时,处理所述编译数据,以获取对应的编译产物。
  6. 根据权利要求1所述的方法,其特征在于,所述调用所述私有编译服务器处理所述编译数据,包括:
    根据所述编译数据建立工作区;
    通过在所述私有编译服务器上设置的代理服务,调用所述私有编译服务器运行所述工作区内的所述编译数据。
  7. 根据权利要求6所述的方法,其特征在于,在调用所述私有编译服务器处理所述编译数据时,所述方法还包括:
    监控由所述代理服务返回的编译日志,并向所述用户端返回所述编译日 志。
  8. 根据权利要求1至7任一项所述的方法,其特征在于,在获取编译产物之后,所述方法还包括:
    将所述编译产物存储至产物仓库。
  9. 一种编译方法,其特征在于,包括:
    调度服务器从用户端接收编译请求,确定一任务服务器,并将所述编译请求发送至所述任务服务器;
    所述任务服务器根据所述编译请求获取所需的编译数据,并确定为所述用户端预先配置的私有编译服务器,调用所述私有编译服务器处理所述编译数据;
    所述私有编译服务器通过处理所述编译数据得到编译产物,将所述编译产物返回所述任务服务器。
  10. 一种编译装置,其特征在于,包括:
    编译请求获取模块,用于获取由用户端发起的编译请求;
    编译数据获取模块,用于根据所述编译请求获取所需的编译数据;
    调用模块,用于确定为所述用户端预先配置的私有编译服务器,调用所述私有编译服务器处理所述编译数据;
    编译产物获取模块,用于获取所述私有编译服务器处理所述编译数据所得到的编译产物。
  11. 一种编译系统,其特征在于,包括调度服务器、任务服务器和私有编译服务器;其中,
    所述调度服务器,用于从用户端接收编译请求,确定一任务服务器,并将所述编译请求发送至所述任务服务器;
    所述任务服务器,用于根据所述编译请求获取所需的编译数据,并确定为所述用户端预先配置的私有编译服务器,调用所述私有编译服务器处理所述编译数据;
    所述私有编译服务器,用于通过处理所述编译数据得到编译产物,将所述编译产物返回所述任务服务器。
  12. 一种计算机可读存储介质,其上存储有计算机程序,其特征在于, 所述计算机程序被处理器执行时实现权利要求1至9任一项所述的方法。
  13. 一种电子设备,其特征在于,包括:
    处理器;以及
    存储器,用于存储所述处理器的可执行指令;
    其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至9任一项所述的方法。
PCT/CN2020/094462 2020-06-04 2020-06-04 编译方法、编译装置、编译系统、存储介质与电子设备 WO2021243665A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202080100522.2A CN115552369A (zh) 2020-06-04 2020-06-04 编译方法、编译装置、编译系统、存储介质与电子设备
PCT/CN2020/094462 WO2021243665A1 (zh) 2020-06-04 2020-06-04 编译方法、编译装置、编译系统、存储介质与电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/094462 WO2021243665A1 (zh) 2020-06-04 2020-06-04 编译方法、编译装置、编译系统、存储介质与电子设备

Publications (1)

Publication Number Publication Date
WO2021243665A1 true WO2021243665A1 (zh) 2021-12-09

Family

ID=78831582

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/094462 WO2021243665A1 (zh) 2020-06-04 2020-06-04 编译方法、编译装置、编译系统、存储介质与电子设备

Country Status (2)

Country Link
CN (1) CN115552369A (zh)
WO (1) WO2021243665A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116126346A (zh) * 2023-04-04 2023-05-16 上海燧原科技有限公司 Ai模型的代码编译方法、装置、计算机设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1347379A2 (en) * 2002-03-18 2003-09-24 Sun Microsystems, Inc. On demand, network accessible runtime compile server
CN107168765A (zh) * 2017-07-07 2017-09-15 惠州Tcl移动通信有限公司 一种远程编译软件的方法及系统
CN107943486A (zh) * 2017-12-19 2018-04-20 北京星河星云信息技术有限公司 一种多语言代码编译方法、分发方法、装置和系统
CN108121543A (zh) * 2017-11-30 2018-06-05 北京奇安信科技有限公司 一种软件代码编译处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1347379A2 (en) * 2002-03-18 2003-09-24 Sun Microsystems, Inc. On demand, network accessible runtime compile server
CN107168765A (zh) * 2017-07-07 2017-09-15 惠州Tcl移动通信有限公司 一种远程编译软件的方法及系统
CN108121543A (zh) * 2017-11-30 2018-06-05 北京奇安信科技有限公司 一种软件代码编译处理方法及装置
CN107943486A (zh) * 2017-12-19 2018-04-20 北京星河星云信息技术有限公司 一种多语言代码编译方法、分发方法、装置和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116126346A (zh) * 2023-04-04 2023-05-16 上海燧原科技有限公司 Ai模型的代码编译方法、装置、计算机设备及存储介质
CN116126346B (zh) * 2023-04-04 2023-06-16 上海燧原科技有限公司 Ai模型的代码编译方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN115552369A (zh) 2022-12-30

Similar Documents

Publication Publication Date Title
KR102628362B1 (ko) 컨테이너화된 환경에서 클러스터의 라이브 마이그레이션
CN111279320B (zh) 实现微服务配置和管理的api储存库
US9596279B2 (en) Cloud-based streaming data receiver and persister
WO2016058488A1 (zh) 一种用于提供sdk文件的方法与设备
CN111045833A (zh) 接口调用的方法和装置
US10078609B1 (en) Virtualizing a non-USB device as a USB device
CN111666293A (zh) 数据库访问方法和装置
KR20220151585A (ko) 업무 데이터 처리 방법, 장치, 전자 기기, 저장 매체 및 컴퓨터 프로그램
CA3178644A1 (en) Techniques to facilitate a migration process to cloud storage
CN117112122A (zh) 一种集群部署方法和装置
WO2021243665A1 (zh) 编译方法、编译装置、编译系统、存储介质与电子设备
CN111767126A (zh) 分布式批量处理的系统和方法
EP4106293A2 (en) Network configuring method and apparatus for cloud mobile phone, device and storage medium
CN113779122B (zh) 导出数据的方法和装置
CN112559001A (zh) 更新应用的方法和装置
CN113495747B (zh) 一种灰度发布方法和装置
WO2021226965A1 (zh) 资源处理方法、装置、电子设备和存储介质
CN113641343B (zh) 基于环境隔离的高并发python算法调用方法及介质
CA3057458A1 (en) System and method for self-deploying and self-adapting contact center components
US11811878B1 (en) Session manager providing bidirectional data transport
CN113505036B (zh) 一种应用监控方法、客户端和服务器
CN115604333B (zh) 基于dubbo的分布式大数据分析服务调度方法及系统
US20230246916A1 (en) Service map conversion with preserved historical information
US20230385121A1 (en) Techniques for cloud agnostic discovery of clusters of a containerized application orchestration infrastructure
US10853040B2 (en) Address space splitting for legacy application compatibility

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20939343

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 260423)

122 Ep: pct application non-entry in european phase

Ref document number: 20939343

Country of ref document: EP

Kind code of ref document: A1