CN113672281A - 代码差异查询方法、装置、设备及存储介质 - Google Patents
代码差异查询方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113672281A CN113672281A CN202010405287.1A CN202010405287A CN113672281A CN 113672281 A CN113672281 A CN 113672281A CN 202010405287 A CN202010405287 A CN 202010405287A CN 113672281 A CN113672281 A CN 113672281A
- Authority
- CN
- China
- Prior art keywords
- code
- request
- code difference
- information
- file
- 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.)
- Pending
Links
Images
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/75—Structural analysis for program understanding
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种代码差异查询方法、装置、设备及存储介质,包括:在接收到代码差异查询请求时,读取代码差异查询请求中携带的请求任务信息;然后获取请求任务信息中包含的代码路径信息,并查找代码路径信息对应的待比对代码文件,再通过多个处理节点对待比对代码文件进行对比,以获得代码差异结果。由于本发明是采用多节点同时计算代码文件之间的代码差异,从而相比于现有的多进程加缓存的处理方式,能够极大的提升代码差异的计算速度,提高查询效率。
Description
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种代码差异查询方法、装置、设备及存储介质。
背景技术
在代码差异查询系统中,代码差异查询的最初解决方案是:单机部署,实时计算。这种解决方案在实际应用中的最明显缺点就是,代码差异的计算慢、耗时长,且每次都是在用户发出查询请求之后才计算,而且机器宕机后就无法再为用户提供服务。
为了优化计算速度,开发测试人员对现有方案进行了改进,采用了多进程+缓存方式来处理代码差异查询,这种方式能在一定程度上提高计算性能,但受系统CPU内核限制,当计算量超过一定阈值,性能仍是受影响,导致代码差异查询速度仍旧不高,查询效率较低。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供了一种代码差异查询方法、装置、设备及存储介质,旨在解决现有技术在进行代码差异查询时,查询速度不高,效率低的技术问题。
为实现上述目的,本发明提供了一种代码差异查询方法,所述方法包括以下步骤:
在接收到代码差异查询请求时,读取所述代码差异查询请求中携带的请求任务信息;
获取所述请求任务信息中包含的代码路径信息,并查找所述代码路径信息对应的待比对代码文件;
通过多个处理节点对所述待比对代码文件进行对比,以获得代码差异结果。
可选地,所述获取所述请求任务信息中包含的代码路径信息,并查找所述代码路径信息对应的待比对代码文件的步骤,包括:
获取所述请求任务信息中包含的代码路径信息;
对所述代码路径信息进行比对,并根据比对结果在预设数据库中查找是否存在对应的代码差异结果;
在所述预设数据库中不存在所述代码差异结果时,查找所述代码路径信息对应的待比对代码文件。
可选地,所述对所述代码路径信息进行比对,并根据比对结果在预设数据库中查找是否存在对应的代码差异结果的步骤之后,所述方法,还包括:
在所述预设数据库中存在所述代码差异结果时,将所述代码差异结果反馈至所述代码差异查询请求对应的请求发起用户。
可选地,所述在接收到代码差异查询请求时,读取所述代码差异查询请求中携带的请求任务信息的步骤之前,所述方法还包括:
获取注册用户提交的历史代码信息;
根据所述历史代码信息对所述注册用户的代码差异查询需求进行预测,获得待执行代码差异查询请求;
将所述待执行代码差异查询请求对应的请求任务信息写入预设消息队列;
对所述预设消息队列中的任务进行处理,并将任务处理结果保存至预设数据库。
可选地,所述在所述预设数据库中不存在所述代码差异结果时,查找所述代码路径信息对应的待比对代码文件的步骤,包括:
在所述预设数据库中不存在所述代码差异结果时,将所述请求任务信息写入所述预设消息队列;
通过多个处理节点从所述预设消息队列中读取请求任务信息,并根据所述代码路径信息和所述请求任务信息确定对应的待比对代码文件。
可选地,所述根据所述历史代码信息对所述注册用户的代码差异查询需求进行预测,获得待执行代码差异查询请求的步骤,包括:
根据所述历史代码信息中包含的代码编译信息和代码测试信息获取存在代码变更操作的历史代码文件;
获取所述历史代码文件对应的文件特征信息,根据所述文件特征信息确定待比对目标代码文件;
根据所述待比对目标代码文件对所述注册用户的代码差异查询需求进行预测,获得待执行代码差异查询请求。
可选地,所述在接收到代码差异查询请求时,读取所述代码差异查询请求中携带的请求任务信息的步骤,包括:
在接收到代码差异查询请求时,读取所述代码差异查询请求的请求报文中包含的用户标识;
根据所述用户标识判断请求发起用户是否具有访问权限;
在所述请求发起用户具有访问权限时,读取所述代码差异查询请求中携带的请求任务信息。
此外,为实现上述目的,本发明还提出一种代码差异查询装置,所述代码差异查询装置包括:
请求接收模块,用于在接收到代码差异查询请求时,读取所述代码差异查询请求中携带的请求任务信息;
文件查找模块,用于获取所述请求任务信息中包含的代码路径信息,并查找所述代码路径信息对应的待比对代码文件;
文件对比模块,用于通过多个处理节点对所述待比对代码文件进行对比,以获得代码差异结果。
此外,为实现上述目的,本发明还提出一种代码差异查询设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的代码差异查询程序,所述代码差异查询程序配置为实现如上文所述的代码差异查询方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有代码差异查询程序,所述代码差异查询程序被处理器执行时实现如上文所述的代码差异查询方法的步骤。
本发明通过在接收到代码差异查询请求时,读取代码差异查询请求中携带的请求任务信息;然后获取请求任务信息中包含的代码路径信息,并查找代码路径信息对应的待比对代码文件,再通过多个处理节点对待比对代码文件进行对比,以获得代码差异结果。由于本发明是采用多节点同时计算代码文件之间的代码差异,从而相比于现有的多进程加缓存的处理方式,能够极大的提升代码差异的计算速度,提高查询效率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的代码差异查询设备的结构示意图;
图2为本发明代码差异查询方法第一实施例的流程示意图;
图3为本发明代码差异查询方法第一实施例中分布式任务处理系统的架构图;
图4为本发明代码差异查询方法第二实施例的流程示意图;
图5为本发明代码差异查询方法第三实施例的流程示意图;
图6为本发明代码差异查询装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的代码差异查询设备结构示意图。
如图1所示,该代码差异查询设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对代码差异查询设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及代码差异查询程序。
在图1所示的代码差异查询设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明代码差异查询设备中的处理器1001、存储器1005可以设置在代码差异查询设备中,所述代码差异查询设备通过处理器1001调用存储器1005中存储的代码差异查询程序,并执行本发明实施例提供的代码差异查询方法。
本发明实施例提供了一种代码差异查询方法,参照图2,图2为本发明代码差异查询方法第一实施例的流程示意图。
本实施例中,所述代码差异查询方法包括以下步骤:
步骤S10:在接收到代码差异查询请求时,读取所述代码差异查询请求中携带的请求任务信息;
需要说明的是,本实施例方法的执行主体可以是一种分布式任务处理系统(以下简称系统)。参照图3,图3为本发明代码差异查询方法第一实施例中分布式任务处理系统的架构图。
如图3所示,本实施例分布式任务处理系统可包括中控10、消息队列20、处理节点(301……30n)以及数据库40。其中,中控10可与前端进行数据交互,在实际操作中,用户可通过前端提供的交互界面输入相应的代码差异查询请求,然后由中控10对该请求进行处理。
可理解的是,所述消息队列可理解为一种在消息传输过程中保存消息的容器,本实施例中该消息队列20用于存放待执行的任务信息。所述处理节点(301……30n)则是该分布式任务处理系统中用来从消息队列20中读取任务信息并进行任务处理的节点服务器。所述数据库40可包括主数据库和从数据库,用来存放各类代码差异查询请求被处理节点(301……30n)处理后的请求处理结果。
应理解的是,所述请求任务信息可以是包含不同查询需求的任务信息,例如查询存在差异的代码文件对应的差异文件列表,或是查询存在差异的代码文件对应的具体代码差异等。
在具体实现中,系统在接收到用户输入的代码差异查询请求时先对请求进行解析,然后根据解析后的请求报文来读取请求携带的请求任务信息。
为了提升代码差异查询的安全性,保证系统的信息安全。作为一种实施方式本实施例中上述中控在接收到用户发起的代码差异查询请求时,还将检测该用户是否具有访问权限。
具体的,系统在接收到代码差异查询请求时,先读取代码差异查询请求的请求报文中包含的用户标识;然后根据该用户标识判断请求发起用户是否具有访问权限;如果用户具有访问权限,就执行接下来的后续操作;如果用户不具备访问权限,则直接返回一个权限开通提示,以指引用户根据该提示进行权限开通。
应理解的是,为了降低权限管控的复杂程度,本实施例中系统可通过用户标识来判断用户是否具有访问权限可进一步提高整体查询效率。本实施例中该用户标识可以是用户的注册ID、账户号码或者是其它能够用来表征用户唯一性,且易于权限管控的字符数据。
步骤S20:获取所述请求任务信息中包含的代码路径信息,并查找所述代码路径信息对应的待比对代码文件;
应理解的是,对查询代码差异的请求进行处理时,需要先确定待比对的代码文件,因而本实施例选择代码存放时的路径信息作为查询条件来确定待比对的代码文件,可保证代码文件查找的准确性以及查找效率。
具体的,系统可先获取请求任务信息中包含的代码路径信息;然后对这些代码路径信息进行比对,以确定用户需要查看哪些代码文件之间的差异,然后在预设数据库中查找是否已经存在了对应的代码差异结果;如果存在,就无需进行后续的代码比对操作,直接将查找的结果反馈至用户即可。
作为一种实施方式,本实施例中系统可先获取请求任务信息中包含的代码路径信息,然后对代码路径信息进行比对,并根据比对结果在预设数据库(即上述数据库40)中查找是否存在对应的代码差异结果;若不存在,则继续查找代码路径信息对应的待比对代码文件;若存在,则将代码差异结果反馈至代码差异查询请求对应的请求发起用户。
进一步地,为保证请求处理的有序性、可靠性,并提升查询效率。本实施例中,系统还可在预设数据库中不存在代码差异结果时,将请求任务信息写入预设消息队列,然后通过多个处理节点从预设消息队列中读取请求任务信息,并根据代码路径信息和请求任务信息确定对应的待比对代码文件。
本实施例通过在获取待比对代码文件前,先在数据库中查找是否存在相应的代码差异结果,能够有效利用用户的历史查询数据,避免不必要重复操作,提高了代码差异的查询效率,也节省了对系统各类资源的占用。同时,由于不同版本的代码文件对应的存放路径也不同,通过代码路径的比对也能较为准确、快速地确定出哪些是可能存在差异的代码文件。
步骤S30:通过多个处理节点对所述待比对代码文件进行对比,以获得代码差异结果。
需要说明的是,为了有效的提升代码差异的查询速度,本实施例采用多个处理节点同时计算代码差异的方式来对待比对的代码文件进行对比,从而能够快速的获得代码文件之间的代码差异(结果),然后将该代码差异通过前端展示给用户进行查看。
进一步地,本实施例中系统在选取处理节点进行代码对比操作时,可先获取处理节点当前时刻的性能状态信息,例如CPU占用率、内存占用率以及磁盘IO等,然后根据这些状态信息选取性能状态良好的处理节点作为有效处理节点对代码文件进行比对,从而进一步提高查询效率。
当然,在根据上述性能状态参数选取处理节点时,可优先选用当前时刻处于空闲状态的节点;若不存在处于空闲状态的处理节点,则可根据每个处理节点当前时刻等待处理的任务量以及最近一段时间内的平均任务处理速率和性能状态参数来筛选出多个处理节点对代码文件进行比对。
作为一种实施方式,为了尽可能的提高代码文件的对比效率,系统在将待比对代码文件分配至不同的处理节点时,可先获取待比对代码文件的文件大小,然后根据文件大小对代码对比过程的耗时进行预测,再根据预测结果将耗时较长的代码文件优先分配给性能状态良好、且任务量较少的处理节点进行处理,从而极大的提升代码差异查询的效率。
在具体实现中,系统在获取到待比对代码文件后,即可按照上述方式将待比对代码文件分配至不同的处理节点进行对比,从而获得代码差异结果,然后再将该结果反馈至用户。
在实际应用中,不同用户发起的代码差异查询请求所要查询的请求对象不同,而对于不同类型的请求对象,系统所执行的具体查询操作也不同。本实施例将以代码文件差异和代码差异文件列表两种请求对象进行说明。
具体的,系统可先通过多个处理节点从所述预设消息队列中读取请求任务信息,然后根据所述请求任务信息确定所述代码差异查询请求对应的请求对象。
在请求对象为代码文件差异时,系统可对所述待比对代码文件进行代码项目分类,获得待对比代码项目集合;通过多个处理节点分别计算对所述代码项目集合中的各代码文件之间的具体差异,并将所述具体差异作为代码差异结果。
在所述请求对象为代码差异文件列表时,根据所述代码路径信息获取对应的待比对代码文件,然后通过多个处理节点对所述待比对代码文件进行对比,根据对比结果确定存在差异的目标代码文件;最后再根据所述目标代码文件生成对应的代码差异文件列表,并将所述代码差异文件列表作为代码差异结果。
本实施例通过在接收到代码差异查询请求时,读取代码差异查询请求中携带的请求任务信息;然后获取请求任务信息中包含的代码路径信息,并查找代码路径信息对应的待比对代码文件,再通过多个处理节点对待比对代码文件进行对比,以获得代码差异结果。由于本实施例是采用多节点同时计算代码文件之间的代码差异,从而相比于现有的多进程加缓存的处理方式,能够极大的提升代码差异的计算速度,提高查询效率。
参考图4,图4为本发明代码差异查询方法第二实施例的流程示意图。
基于上述第一实施例,本实施例中,上述分布式任务处理系统还包括:人工智能AI模块(图3中未示出),该模块是一个可提前预测用户可能需要对比的代码文件(路径)的模块,它可以从用户提交的历史代码编译信息、代码提测信息中提取对应的特征信息,然后基于这些特征信息对用户后期可能要发起的代码差异查询请求进行预测,推测出用户可能要发布的查询任务,再将这些任务提前放入消息队列,这样处理节点就可以提前对消息队列中的这些任务进行处理,在用户后续访问的时候,如果已经有了处理结果,就可以直接读取结果进行展示,从而极大地提高查询效率,优化用户的查询体验。
相应地,在本实施例中,所述步骤S10之前,所述方法还包括:
步骤S01:获取注册用户提交的历史代码信息;
需要说明的是,所述注册用户可以是预先在分布式任务处理系统中进行账户注册的用户。当然,对于未注册的用户,本实施例提供的代码差异查询方法也同样适用。
应理解的是,所述历史代码信息包括但不限于代码编译信息和代码提测信息。所谓代码编译信息可以是用户在对代码程序进行编译操作时涉及的信息,例如代码的增删改查等信息。所述代码提测信息可以是代码提交测试过程时涉及的代码测试信息,例如功能测试信息、压力测试信息等。
本步骤中这些历史代码信息可由用户提交,也可由系统根据用户的代码操作记录提取获得,本实施例对此不作限制。
步骤S02:根据所述历史代码信息对所述注册用户的代码差异查询需求进行预测,获得待执行代码差异查询请求;
在具体实现中,系统可根据上述历史代码信息对注册用户后续可能要提交的代码差异查询请求进行预测,从而获得待执行代码差异查询请求。
考虑到实际应用中,若笼统的根据用户的历史代码信息进行请求预测,虽然能够使得预测准确度较高,但其涉及的预测工作量也较为庞大,会占用系统过多的计算资源。
因而,作为一种实施方式,本实施例中系统可优先通过历史代码信息中包含的代码编译信息和代码测试信息来进行请求预测。
具体的,系统可根据历史代码信息中包含的代码编译信息和代码测试信息获取存在代码变更操作的历史代码文件,即获取被用户修改过的历史代码文件;然后获取这些历史代码文件对应的文件特征信息,再根据这些文件特征信息确定待比对目标代码文件;最后根据待比对目标代码文件对注册用户的代码差异查询需求进行预测,获得待执行代码差异查询请求。
需要说明的是,所述文件特征信息可以是文件的更新频率、更新次数,以及更新内容、更新内容的篇幅大小/占比、代码文件所属的代码项目等。本实施例对所述文件特征信息所涉及的消息维度不作具体限制。
在具体实现中,系统可获取历史代码文件对应的代码路径,然后根据代码路径从历史代码文件中选取关联代码文件;再获取各关联代码文件对应的代码关键信息,然后根据代码关键信息确定待比对目标代码文件。
应理解的是,对于一个完整的代码项目而言,项目包括的代码文件可能有很多,且同一个代码文件的不同版本对应的存放路径大多是不同的,但这些存放路径的前缀或大部分路径字符基本是相同的,存在差异的可能只是路径中尾部的几个字符,因此本实施例中系统可根据代码路径中的这部分相同字符选取相关联的代码文件。所述代码关键信息则可以是能够表征代码文件特点或特征的关键信息,例如文件中共有的某些特定函数或是字符等。
在具体实现中,系统在预测出待执行的代码差异查询请求后,即可提前对这些请求进行处理。
步骤S03:将所述待执行代码差异查询请求对应的请求任务信息写入预设消息队列;
在具体实现中,系统可将预测出的待执行代码差异请求中包含的请求任务信息写入到预设消息队列,然后由不同的处理节点对当前预设消息队列中的请求任务进行提前处理。
步骤S04:对所述预设消息队列中的任务进行处理,并将任务处理结果保存至预设数据库。
应理解的是,为了能够实现代码差异的提前计算,本实施例中可预先通过不同的处理节点对预设消息队列中待执行代码差异查询请求对应的任务进行,然后将处理结果保存在预设数据库中。
需要说明的是,所述预设数据库即分布式任务处理系统中的上述数据库40,为了保证这类提前预测计算的任务处理结果能够被快速查询,系统可将这些任务处理结果保存至上述数据库40对应的从数据库中。
考虑到请求预测也存在一定的偏差,本实施例中系统也可根据存储在从数据库中的任务处理结果的读取记录来判断请求预测的准确性,对于从数据库中长时间未被读取或查询的任务处理结果,则可采用定期清除的方式降低从数据库的存储压力。
进一步地,由于本实施例中,上述系统具有请求预测的功能,因此为了避免出现:用户当前发起的代码差异查询请求对应的请求任务信息已经被人工智能AI模块成功预测并写入预设消息队列正在等待处理,但尚未得到处理结果,导致数据库中暂时查询不到代码差异结果的情况,本实施例中系统最初检测到预设数据库中不存在代码差异结果时,将会等待一定的时间,并在等待期间内循环检测预设数据库中是否已经存在了代码差异查询请求对应的代码差异结果,若仍没有,则执行正常的代码文件查找操作,即通过多个处理节点从预设消息队列中读取请求任务信息,并根据所述代码路径信息和所述请求任务信息确定对应的待比对代码文件。本实施例这种循环检测的方式也能够保证代码差异查询的效率。
本实施例通过获取注册用户提交的历史代码信息;根据所述历史代码信息对所述注册用户的代码差异查询需求进行预测,获得待执行代码差异查询请求;将所述待执行代码差异查询请求对应的请求任务信息写入预设消息队列;对所述预设消息队列中的任务进行处理,并将任务处理结果保存至预设数据库。本实施例能够根据用户的历史代码信息较为准确地提前预测出用户可能会进行的代码差异查询请求,然后提前对该查询请求进行处理并对处理结果进行预存,使得该用户在发起相同的查询请求时,可立即根据预存的结果进行反馈,缩短了查询等待时间,提高了用户的查询体验。
参考图5,图5为本发明代码差异查询方法第三实施例的流程示意图。
基于上述各实施例,提出本发明代码差异查询方法第三实施例。
在本实施例中,所述步骤S10可具体包括以下步骤:
步骤S101:在接收到代码差异查询请求时,读取所述代码差异查询请求的请求报文中包含的用户标识;
应理解的是,本实施例中所述用户标识可以是用户的注册ID、账户号码或者是其它能够用来表征用户唯一性,且易于权限管控的字符数据。
系统在接收到代码差异查询请求时,可对请求进行解析后从请求报文中读取包含的用户标识。
步骤S102:根据所述用户标识判断请求发起用户是否具有访问权限;
考虑到实际情况中,仅根据用户标识来判断请求发起用户是否具有访问权限的校验方式并不能一定保证用户访问的真实性和安全性。因此,本实施例系统在对用户进行权限校验时,还将结合请求发起用户访问时的互联网协议地址(IP地址)来进行权限校验。
具体的,系统可先获取请求发起用户对应的互联网协议地址,并检测所述互联网协议地址是否存在于预设白名单中;在所述互联网协议地址存在于所述预设白名单中时,根据所述请求报文确定所述请求发起用户所要查询的目标代码资源;根据所述用户标识和所述目标代码资源判断所述请求发起用户是否具有访问权限。
其中,所述预设白名单可以是具备访问权限的用户对应的IP地址名单。
进一步地,为对不同的代码资源进行安全管控,可预先在系统中建立一个代码资源对应的权限访问列表,该列表中存放有代码资源和拥有该代码资源访问权限的用户标识之间的对应关系,在查询用户是否具有某个代码资源的访问权限时,可根据该权限访问列表对用户标识进行匹配,然后根据匹配结果来确定用户是否具有访问权限。具体的,系统可获取所述目标代码资源对应的访问权限列表;然后根据所述权限访问列表对所述用户标识进行匹配,若匹配成功,则判定所述请求发起用户具有访问权限;若匹配失败,则判定所述请求发起用户不具有所述访问权限。
步骤S103:在所述请求发起用户具有访问权限时,读取所述代码差异查询请求中携带的请求任务信息。
在具体实现中,当系统检测到请求发起用户具有访问权限时,即可读取代码差异查询请求中携带的请求任务信息,然后执行后续的代码差异查询操作。
相应地,在所述请求发起用户不具有访问权限时,系统可将预先设定的权限开通提示发送至请求发起用户,以使请求发起用户根据权限开通提示开通访问权限。
本实施例在接收到代码差异查询请求时,读取所述代码差异查询请求的请求报文中包含的用户标识;根据所述用户标识判断请求发起用户是否具有访问权限;在所述请求发起用户具有访问权限时,读取所述代码差异查询请求中携带的请求任务信息;在所述请求发起用户不具有访问权限时,将预先设定的权限开通提示发送至所述请求发起用户,以使所述请求发起用户根据所述权限开通提示开通所述访问权限。本实施例通过上述方式能够有效的对用户进行访问权限的验证,避免无权限的用户进行代码资源的访问和查询操作,保证了代码信息的安全性。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有代码差异查询程序,所述代码差异查询程序被处理器执行时实现如上文所述的代码差异查询方法的步骤。
参照图6,图6为本发明代码差异查询装置第一实施例的结构框图。
如图6所示,本发明实施例提出的代码差异查询装置包括:
请求接收模块601,用于在接收到代码差异查询请求时,读取所述代码差异查询请求中携带的请求任务信息;
文件查找模块602,用于获取所述请求任务信息中包含的代码路径信息,并查找所述代码路径信息对应的待比对代码文件;
文件对比模块603,用于通过多个处理节点对所述待比对代码文件进行对比,以获得代码差异结果。
本实施例通过在接收到代码差异查询请求时,读取代码差异查询请求中携带的请求任务信息;然后获取请求任务信息中包含的代码路径信息,并查找代码路径信息对应的待比对代码文件,再通过多个处理节点对待比对代码文件进行对比,以获得代码差异结果。由于本实施例是采用多节点同时计算代码文件之间的代码差异,从而相比于现有的多进程加缓存的处理方式,能够极大的提升代码差异的计算速度,提高查询效率。
基于本发明上述代码差异查询装置第一实施例,提出本发明代码差异查询装置的第二实施例。
在本实施例中,所述文件查找模块602,还用于获取所述请求任务信息中包含的代码路径信息;对所述代码路径信息进行比对,并根据比对结果在预设数据库中查找是否存在对应的代码差异结果;在所述预设数据库中不存在所述代码差异结果时,查找所述代码路径信息对应的待比对代码文件。
作为一种实施方式,所述文件查找模块602,还用于在所述预设数据库中存在所述代码差异结果时,将所述代码差异结果反馈至所述代码差异查询请求对应的请求发起用户。
作为一种实施方式,本实施例中,所述代码差异查询装置还包括:请求预测模块,所述请求预测模块,用于获取注册用户提交的历史代码信息;根据所述历史代码信息对所述注册用户的代码差异查询需求进行预测,获得待执行代码差异查询请求;将所述待执行代码差异查询请求对应的请求任务信息写入预设消息队列;对所述预设消息队列中的任务进行处理,并将任务处理结果保存至预设数据库。
作为一种实施方式,所述请求预测模块,还用于根据所述历史代码信息中包含的代码编译信息和代码测试信息获取存在代码变更操作的历史代码文件;获取所述历史代码文件对应的文件特征信息,根据所述文件特征信息确定待比对目标代码文件;根据所述待比对目标代码文件对所述注册用户的代码差异查询需求进行预测,获得待执行代码差异查询请求。
作为一种实施方式,所述请求预测模块,还用于获取所述历史代码文件对应的代码路径,根据所述代码路径从所述历史代码文件中选取关联代码文件;获取各关联代码文件对应的代码关键信息,根据所述代码关键信息确定待比对目标代码文件。
作为一种实施方式,所述文件查找模块602,还用于在所述预设数据库中不存在所述代码差异结果时,将所述请求任务信息写入所述预设消息队列;通过多个处理节点从所述预设消息队列中读取请求任务信息,并根据所述代码路径信息和所述请求任务信息确定对应的待比对代码文件。
作为一种实施方式,所述文件查找模块602,还用于在预设时长内,循环检测所述代码差异查询请求对应的代码差异结果是否已存放至所述预设数据库中;若所述代码差异结果未存放至所述预设数据库中,则执行所述通过多个处理节点从所述预设消息队列中读取请求任务信息,并根据所述代码路径信息和所述请求任务信息确定对应的待比对代码文件的操作。
作为一种实施方式,所述文件查找模块602,还用于通过多个处理节点从所述预设消息队列中读取请求任务信息;根据所述请求任务信息确定所述代码差异查询请求对应的请求对象;在所述请求对象为代码文件差异时,根据所述代码路径信息获取对应的待比对代码文件;
相应地,所述文件对比模块603,还用于对所述待比对代码文件进行代码项目分类,获得待对比代码项目集合;通过多个处理节点分别计算对所述代码项目集合中的各代码文件之间的具体差异,并将所述具体差异作为代码差异结果。
作为一种实施方式,所述文件查找模块602,还用于在所述请求对象为代码差异文件列表时,根据所述代码路径信息获取对应的待比对代码文件;
相应地,所述文件对比模块603,还用于通过多个处理节点对所述待比对代码文件进行对比,根据对比结果确定存在差异的目标代码文件;根据所述目标代码文件生成对应的代码差异文件列表,并将所述代码差异文件列表作为代码差异结果。
作为一种实施方式,所述请求接收模块601,还用于在接收到代码差异查询请求时,读取所述代码差异查询请求的请求报文中包含的用户标识;根据所述用户标识判断请求发起用户是否具有访问权限;在所述请求发起用户具有访问权限时,读取所述代码差异查询请求中携带的请求任务信息。
作为一种实施方式,所述请求接收模块601,还用于获取请求发起用户对应的互联网协议地址,并检测所述互联网协议地址是否存在于预设白名单中;在所述互联网协议地址存在于所述预设白名单中时,根据所述请求报文确定所述请求发起用户所要查询的目标代码资源;根据所述用户标识和所述目标代码资源判断所述请求发起用户是否具有访问权限。
作为一种实施方式,所述请求接收模块601,还用于获取所述目标代码资源对应的访问权限列表;根据所述权限访问列表对所述用户标识进行匹配,若匹配成功,则判定所述请求发起用户具有访问权限;若匹配失败,则判定所述请求发起用户不具有所述访问权限。
作为一种实施方式,所述请求接收模块601,还用于在所述请求发起用户不具有访问权限时,将预先设定的权限开通提示发送至所述请求发起用户,以使所述请求发起用户根据所述权限开通提示开通所述访问权限。
本发明代码差异查询装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
本发明提供一种代码差异查询方法,所述代码差异查询方法还包括以下步骤:
在接收到代码差异查询请求时,读取所述代码差异查询请求中携带的请求任务信息;
获取所述请求任务信息中包含的代码路径信息,并查找所述代码路径信息对应的待比对代码文件;
通过多个处理节点对所述待比对代码文件进行对比,以获得代码差异结果。
可选地,所述获取所述请求任务信息中包含的代码路径信息,并查找所述代码路径信息对应的待比对代码文件的步骤,包括:
获取所述请求任务信息中包含的代码路径信息;
对所述代码路径信息进行比对,并根据比对结果在预设数据库中查找是否存在对应的代码差异结果;
在所述预设数据库中不存在所述代码差异结果时,查找所述代码路径信息对应的待比对代码文件。
可选地,所述对所述代码路径信息进行比对,并根据比对结果在预设数据库中查找是否存在对应的代码差异结果的步骤之后,所述方法,还包括:
在所述预设数据库中存在所述代码差异结果时,将所述代码差异结果反馈至所述代码差异查询请求对应的请求发起用户。
可选地,所述在接收到代码差异查询请求时,读取所述代码差异查询请求中携带的请求任务信息的步骤之前,所述方法还包括:
获取注册用户提交的历史代码信息;
根据所述历史代码信息对所述注册用户的代码差异查询需求进行预测,获得待执行代码差异查询请求;
将所述待执行代码差异查询请求对应的请求任务信息写入预设消息队列;
对所述预设消息队列中的任务进行处理,并将任务处理结果保存至预设数据库。
可选地,所述在所述预设数据库中不存在所述代码差异结果时,查找所述代码路径信息对应的待比对代码文件的步骤,包括:
在所述预设数据库中不存在所述代码差异结果时,将所述请求任务信息写入所述预设消息队列;
通过多个处理节点从所述预设消息队列中读取请求任务信息,并根据所述代码路径信息和所述请求任务信息确定对应的待比对代码文件。
可选地,所述通过多个处理节点从所述预设消息队列中读取请求任务信息的步骤之前,所述方法还包括:
在预设时长内,循环检测所述代码差异查询请求对应的代码差异结果是否已存放至所述预设数据库中;
若所述代码差异结果未存放至所述预设数据库中,则执行所述通过多个处理节点从所述预设消息队列中读取请求任务信息,并根据所述代码路径信息和所述请求任务信息确定对应的待比对代码文件的步骤。
可选地,所述根据所述历史代码信息对所述注册用户的代码差异查询需求进行预测,获得待执行代码差异查询请求的步骤,包括:
根据所述历史代码信息中包含的代码编译信息和代码测试信息获取存在代码变更操作的历史代码文件;
获取所述历史代码文件对应的文件特征信息,根据所述文件特征信息确定待比对目标代码文件;
根据所述待比对目标代码文件对所述注册用户的代码差异查询需求进行预测,获得待执行代码差异查询请求。
可选地,所述获取所述历史代码文件对应的文件特征信息,根据所述文件特征信息确定待比对目标代码文件的步骤,包括:
获取所述历史代码文件对应的代码路径,根据所述代码路径从所述历史代码文件中选取关联代码文件;
获取各关联代码文件对应的代码关键信息,根据所述代码关键信息确定待比对目标代码文件。
可选地,所述通过多个处理节点从所述预设消息队列中读取请求任务信息,并根据所述代码路径信息和所述请求任务信息确定对应的待比对代码文件的步骤,包括:
通过多个处理节点从所述预设消息队列中读取请求任务信息;
根据所述请求任务信息确定所述代码差异查询请求对应的请求对象;
在所述请求对象为代码文件差异时,根据所述代码路径信息获取对应的待比对代码文件。
可选地,所述通过多个处理节点对所述待比对代码文件进行对比,以获得代码差异结果的步骤,包括:
对所述待比对代码文件进行代码项目分类,获得待对比代码项目集合;
通过多个处理节点分别计算对所述代码项目集合中的各代码文件之间的具体差异,并将所述具体差异作为代码差异结果。
可选地,所述根据所述请求任务信息确定所述代码差异查询请求对应的请求对象的步骤之后,所述方法还包括:
在所述请求对象为代码差异文件列表时,根据所述代码路径信息获取对应的待比对代码文件。
可选地,所述通过多个处理节点对所述待比对代码文件进行对比,以获得代码差异结果的步骤,包括:
通过多个处理节点对所述待比对代码文件进行对比,根据对比结果确定存在差异的目标代码文件;
根据所述目标代码文件生成对应的代码差异文件列表,并将所述代码差异文件列表作为代码差异结果。
可选地,所述在接收到代码差异查询请求时,读取所述代码差异查询请求中携带的请求任务信息的步骤,包括:
在接收到代码差异查询请求时,读取所述代码差异查询请求的请求报文中包含的用户标识;
根据所述用户标识判断请求发起用户是否具有访问权限;
在所述请求发起用户具有访问权限时,读取所述代码差异查询请求中携带的请求任务信息。
可选地,所述根据所述用户标识判断请求发起用户是否具有访问权限的步骤,包括:
获取请求发起用户对应的互联网协议地址,并检测所述互联网协议地址是否存在于预设白名单中;
在所述互联网协议地址存在于所述预设白名单中时,根据所述请求报文确定所述请求发起用户所要查询的目标代码资源;
根据所述用户标识和所述目标代码资源判断所述请求发起用户是否具有访问权限。
可选地,所述根据所述用户标识和所述目标代码资源判断所述请求发起用户是否具有访问权限的步骤,包括:
获取所述目标代码资源对应的访问权限列表;
根据所述权限访问列表对所述用户标识进行匹配,若匹配成功,则判定所述请求发起用户具有访问权限;
若匹配失败,则判定所述请求发起用户不具有所述访问权限。
可选地,所述根据所述用户标识判断请求发起用户是否具有访问权限的步骤之后,所述方法还包括:
在所述请求发起用户不具有访问权限时,将预先设定的权限开通提示发送至所述请求发起用户,以使所述请求发起用户根据所述权限开通提示开通所述访问权限。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种代码差异查询方法,其特征在于,所述代码差异查询方法包括:
在接收到代码差异查询请求时,读取所述代码差异查询请求中携带的请求任务信息;
获取所述请求任务信息中包含的代码路径信息,并查找所述代码路径信息对应的待比对代码文件;
通过多个处理节点对所述待比对代码文件进行对比,以获得代码差异结果。
2.如权利要求1所述的代码差异查询方法,其特征在于,所述获取所述请求任务信息中包含的代码路径信息,并查找所述代码路径信息对应的待比对代码文件的步骤,包括:
获取所述请求任务信息中包含的代码路径信息;
对所述代码路径信息进行比对,并根据比对结果在预设数据库中查找是否存在对应的代码差异结果;
在所述预设数据库中不存在所述代码差异结果时,查找所述代码路径信息对应的待比对代码文件。
3.如权利要求2所述的代码差异查询方法,其特征在于,所述对所述代码路径信息进行比对,并根据比对结果在预设数据库中查找是否存在对应的代码差异结果的步骤之后,所述方法,还包括:
在所述预设数据库中存在所述代码差异结果时,将所述代码差异结果反馈至所述代码差异查询请求对应的请求发起用户。
4.如权利要求1至3任一项所述的代码差异查询方法,其特征在于,所述在接收到代码差异查询请求时,读取所述代码差异查询请求中携带的请求任务信息的步骤之前,所述方法还包括:
获取注册用户提交的历史代码信息;
根据所述历史代码信息对所述注册用户的代码差异查询需求进行预测,获得待执行代码差异查询请求;
将所述待执行代码差异查询请求对应的请求任务信息写入预设消息队列;
对所述预设消息队列中的任务进行处理,并将任务处理结果保存至预设数据库。
5.如权利要求4所述的代码差异查询方法,其特征在于,所述在所述预设数据库中不存在所述代码差异结果时,查找所述代码路径信息对应的待比对代码文件的步骤,包括:
在所述预设数据库中不存在所述代码差异结果时,将所述请求任务信息写入所述预设消息队列;
通过多个处理节点从所述预设消息队列中读取请求任务信息,并根据所述代码路径信息和所述请求任务信息确定对应的待比对代码文件。
6.如权利要求4所述的代码差异查询方法,其特征在于,所述根据所述历史代码信息对所述注册用户的代码差异查询需求进行预测,获得待执行代码差异查询请求的步骤,包括:
根据所述历史代码信息中包含的代码编译信息和代码测试信息获取存在代码变更操作的历史代码文件;
获取所述历史代码文件对应的文件特征信息,根据所述文件特征信息确定待比对目标代码文件;
根据所述待比对目标代码文件对所述注册用户的代码差异查询需求进行预测,获得待执行代码差异查询请求。
7.如权利要求1至6任一项所述的代码差异查询方法,其特征在于,所述在接收到代码差异查询请求时,读取所述代码差异查询请求中携带的请求任务信息的步骤,包括:
在接收到代码差异查询请求时,读取所述代码差异查询请求的请求报文中包含的用户标识;
根据所述用户标识判断请求发起用户是否具有访问权限;
在所述请求发起用户具有访问权限时,读取所述代码差异查询请求中携带的请求任务信息。
8.一种代码差异查询装置,其特征在于,所述代码差异查询装置包括:
请求接收模块,用于在接收到代码差异查询请求时,读取所述代码差异查询请求中携带的请求任务信息;
文件查找模块,用于获取所述请求任务信息中包含的代码路径信息,并查找所述代码路径信息对应的待比对代码文件;
文件对比模块,用于通过多个处理节点对所述待比对代码文件进行对比,以获得代码差异结果。
9.一种代码差异查询设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的代码差异查询程序,所述代码差异查询程序配置为实现如权利要求1至7中任一项所述的代码差异查询方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有代码差异查询程序,所述代码差异查询程序被处理器执行时实现如权利要求1至7任一项所述的代码差异查询方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010405287.1A CN113672281A (zh) | 2020-05-13 | 2020-05-13 | 代码差异查询方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010405287.1A CN113672281A (zh) | 2020-05-13 | 2020-05-13 | 代码差异查询方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113672281A true CN113672281A (zh) | 2021-11-19 |
Family
ID=78537212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010405287.1A Pending CN113672281A (zh) | 2020-05-13 | 2020-05-13 | 代码差异查询方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113672281A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579286A (zh) * | 2022-05-05 | 2022-06-03 | 支付宝(杭州)信息技术有限公司 | 任务调度系统、方法、设备及存储介质 |
-
2020
- 2020-05-13 CN CN202010405287.1A patent/CN113672281A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579286A (zh) * | 2022-05-05 | 2022-06-03 | 支付宝(杭州)信息技术有限公司 | 任务调度系统、方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8572621B2 (en) | Selection of server for relocation of application program based on largest number of algorithms with identical output using selected server resource criteria | |
CN111817984A (zh) | 消息发送方法、装置、设备及存储介质 | |
CN112988350A (zh) | 数据任务的处理方法、装置及电子设备 | |
CN113157315A (zh) | 一种软件不同版本的差异信息识别方法、装置、设备及介质 | |
CN111767109A (zh) | 基于终端应用的h5页面显示方法、设备及可读存储介质 | |
CN109634569B (zh) | 基于注解的流程实现方法、装置、设备及可读存储介质 | |
CN113672281A (zh) | 代码差异查询方法、装置、设备及存储介质 | |
CN110706035B (zh) | 一种更新效果的评价方法、装置、存储介质及电子设备 | |
CN110852603B (zh) | 高吞吐量的风控数据处理方法、装置、设备及存储介质 | |
CN116303320A (zh) | 基于日志文件的实时任务管理方法、装置、设备及介质 | |
CN114201701A (zh) | 运行环境的识别方法及装置、存储介质、服务端、客户端 | |
CN114237633A (zh) | 应用配置方法、装置、设备及存储介质 | |
CN115686746A (zh) | 访问方法、任务处理方法、计算设备及计算机存储介质 | |
CN115328611A (zh) | 虚拟机管理方法、装置、服务器及可读存储介质 | |
CN113360522B (zh) | 一种快速识别敏感数据的方法及装置 | |
CN113868249A (zh) | 一种数据存储方法、装置、计算机设备以及存储介质 | |
CN112637046A (zh) | 消息推送方法及路由装置 | |
CN107832124B (zh) | 一种在文件处理系统中处理任务的方法和装置 | |
CN112637206A (zh) | 一种业务数据主动获取方法和系统 | |
CN113297358A (zh) | 数据处理方法、装置、服务器和计算机可读存储介质 | |
CN112685474A (zh) | 应用管理方法、装置、设备和存储介质 | |
CN113641911B (zh) | 广告拦截规则库的建立方法、装置、设备及存储介质 | |
CN112035174B (zh) | 运行web服务的方法、装置及计算机存储介质 | |
US11757818B2 (en) | Storage space optimization for emails | |
CN112988391B (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 |