CN111045723B - 关联系统间的代码变更通知方法、装置 - Google Patents

关联系统间的代码变更通知方法、装置 Download PDF

Info

Publication number
CN111045723B
CN111045723B CN201911265854.1A CN201911265854A CN111045723B CN 111045723 B CN111045723 B CN 111045723B CN 201911265854 A CN201911265854 A CN 201911265854A CN 111045723 B CN111045723 B CN 111045723B
Authority
CN
China
Prior art keywords
code
change
downstream system
log record
downstream
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
CN201911265854.1A
Other languages
English (en)
Other versions
CN111045723A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201911265854.1A priority Critical patent/CN111045723B/zh
Publication of CN111045723A publication Critical patent/CN111045723A/zh
Application granted granted Critical
Publication of CN111045723B publication Critical patent/CN111045723B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请的实施例提供了一种关联系统间的代码变更通知方法、装置。该方法包括:在上游系统中确定代码变更的日志记录集合;通过代码版本管理工具钩子函数,在所述日志记录集合中确定与下游系统相关联的变更代码的日志记录;基于所述与下游系统相关联的变更代码的日志记录,生成针对所述下游系统的代码变更通知消息;将所述代码变更通知消息发送给所述下游系统。本申请实施例的技术方案可以提高在关联系统之间进行代码变更通知的及时性。

Description

关联系统间的代码变更通知方法、装置
技术领域
本申请涉及计算机及通信技术领域,具体而言,涉及一种关联系统间的代码变更通知方法、装置。
背景技术
随着多系统对接的项目越来越多,系统之间的依赖和关联也随之增加,一个需求的实现往往涉及到多方合作,由此存在上游系统和下游系统之说,即某个系统依赖于其它系统实现。一旦上游系统发生变更,便会直接影响到下游系统,如果下游系统变更不及时,就有可能会导致系统出现无法正常使用、数据错误甚至崩溃的问题。因此,如何能够提高在关联系统之间进行代码变更通知的及时性是亟待解决的技术问题。
发明内容
本申请的实施例提供了一种关联系统间的代码变更通知方法、装置、计算机可读介质及电子设备,进而至少在一定程度上可以提高在关联系统之间进行代码变更通知的及时性。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供了一种关联系统间的代码变更通知方法,包括:在上游系统中确定代码变更的日志记录集合;通过代码版本管理工具钩子函数,在所述日志记录集合中确定与下游系统相关联的变更代码的日志记录;基于所述与下游系统相关联的变更代码的日志记录,生成针对所述下游系统的代码变更通知消息;将所述代码变更通知消息发送给所述下游系统。
根据本申请实施例的一个方面,提供了一种关联系统间的代码变更通知装置,包括:第一确定单元,被用于在上游系统中确定代码变更的日志记录集合;第二确定单元,被用于通过代码版本管理工具钩子函数,在所述日志记录集合中确定与下游系统相关联的变更代码的日志记录;第一生成单元,被用于基于所述与下游系统相关联的变更代码的日志记录,生成针对所述下游系统的代码变更通知消息;发送单元,被用于将所述代码变更通知消息发送给所述下游系统。
在本申请的一些实施例中,基于前述方案,所述代码版本管理工具钩子函数中包括预先嵌入的代码变更检测脚本,所述第二确定单元配置为:响应于上游系统中的代码变更,触发执行所述代码变更检测脚本;通过所述代码变更检测脚本对所述日志记录集合进行变更检测;根据变更检测结果从所述日志记录集合中确定与下游系统相关联的变更代码的日志记录。
在本申请的一些实施例中,基于前述方案,所述第二确定单元还配置为:在所述日志记录集合中读取变更代码的日志记录;检测所述变更代码的日志记录与所述下游系统是否存在关联关系;若所述变更代码的日志记录与所述下游系统存在关联关系,则将所述变更代码的日志记录作为与下游系统相关联的变更代码的日志记录。
在本申请的一些实施例中,基于前述方案,在所述日志记录集合中读取变更代码的日志记录,包括以下至少一种:在所述日志记录集合中读取变更代码文件的日志记录;在所述日志记录集合中读取变更代码行的日志记录;在所述日志记录集合中读取变更代码关键词的日志记录;在所述日志记录集合中读取变更代码块的日志记录。
在本申请的一些实施例中,基于前述方案,所述装置还包括第二生成单元,被用于在所述日志记录集合中确定与下游系统相关联的变更代码的日志记录之后,根据与下游系统相关联的变更代码的日志记录,生成用于执行在下游系统中的下游系统变更代码;所述发送单元配置为:向所述下游系统发送合并所述下游系统变更代码的通知消息。
在本申请的一些实施例中,基于前述方案,在所述上游系统中存在下游代码仓库,所述下游代码仓库用于保存下游系统代码,所述第二生成单元配置为:根据与下游系统相关联的变更代码的日志记录,对所述下游代码仓库中下游系统代码进行更改,得到用于执行在下游系统中的下游系统变更代码。
在本申请的一些实施例中,基于前述方案,所述第一生成单元配置为:对所述与下游系统相关联的变更代码的日志记录进行信息分割,得到代码变更数组;按照预设的消息格式,对所述代码变更数组进行封装,得到针对所述下游系统的代码变更通知消息。
在本申请的一些实施例中,基于前述方案,所述发送单元配置为:确定与所述下游系统相对应的通讯群组;调用通讯工具消息发送接口,以将所述代码变更通知消息发送至与所述下游系统相对应的通讯群组中。
在本申请的一些实施例中,基于前述方案,所述发送单元还配置为:在将所述代码变更通知消息发送至与所述下游系统相对应的通讯群组中之前,确定与所述下游系统相对应的人员列表,所述人员列表中包括系统维护人员;检测所述人员列表中的系统维护人员是否存在于所述通讯群组中;若所述人员列表中的系统维护人员不存在于所述通讯群组中,则调用通讯工具接口,以将所述系统维护人员加入至所述通讯群组中。
在本申请的一些实施例中,基于前述方案,所述发送单元还配置为:在将所述代码变更通知消息发送给所述下游系统之前,将所述代码变更通知消息上传到区块链系统中。根据本申请实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的关联系统间的代码变更通知方法。
根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的关联系统间的代码变更通知方法。
在本申请的一些实施例所提供的技术方案中,通过代码版本管理工具钩子函数,在上游系统中确定的代码变更的日志记录集合中进一步确定与下游系统相关联的变更代码的日志记录,并根据与下游系统相关联的变更代码的日志记录,生成可以发送给下游系统的代码变更通知消息。由于代码版本管理工具钩子函数在进行代码变更相关操作时可以自动的被触发执行一些预定指令,例如,通过代码版本管理工具钩子函数,可以使得在上游系统中进行与下游系统相关的代码变更时,生成可以发送给下游系统的代码变更通知消息,因此,本申请的方案能够提高在关联系统之间进行代码变更通知的及时性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图;
图2示出了根据本申请的一个实施例的实施关联系统间的代码变更通知方法的场景示意图;
图3示出了根据本申请的一个实施例的关联系统间的代码变更通知方法的流程图;
图4示出了根据本申请的一个实施例的在所述日志记录集合中确定与下游系统相关联的变更代码的日志记录的细节流程图;
图5示出了根据本申请的一个实施例的通过所述代码变更检测脚本对所述日志记录集合进行变更检测的细节流程图;
图6示出了根据本申请的一个实施例的在确定与下游系统相关联的变更代码的日志记录之后的方法流程图;
图7示出了根据本申请的一个实施例的生成针对所述下游系统的代码变更通知消息的细节流程图;
图8示出了根据本申请的一个实施例的将所述代码变更通知消息发送给所述下游系统的细节流程图;
图9示出了根据本申请的一个实施例的在将所述代码变更通知消息发送至与所述下游系统相对应的通讯群组中之前的方法流程图;
图10示出了根据本申请的一个实施例的将所述代码变更通知消息发送至与所述下游系统相对应的通讯群组中的界面展示图;
图11示出了根据本申请的一个实施例的在关联系统间进行代码变更实时通知的流程示例图;
图12示出了根据本申请的一个实施例的关联系统间的代码变更通知装置的框图;
图13示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图。
如图1所示,系统架构可以包括终端设备(如图1中所示智能手机101、平板电脑102和便携式计算机103中的一种或多种,当然也可以是台式计算机等等)、网络104和服务器105。网络104用以在终端设备和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线通信链路、无线通信链路等等。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。
在本申请的一个实施例中,所提到的下游系统可以是指一个系统的前端(客户端),例如,图1中所示的智能手机101、平板电脑102以及便携式计算机103,均可以作为下游系统的存在场景。此外,所提到的上游系统可以是指一个系统的后端(服务端),例如,图1中所示的服务器105可以作为上游系统的存在场景。
在本申请的其它实施例中,所述上游系统和下游系统还可以是不同业务对应的不同系统,也可以是相同的业务不同的系统。
需要说明的是,本申请实施例所提供的关联系统间的代码变更通知方法可以由服务器105执行,相应地,关联系统间的代码变更通知装置一般设置于服务器105中。但是,在本申请的其它实施例中,终端设备也可以与服务器具有相似的功能,从而执行本申请实施例所提供的关联系统间的代码变更通知方案,例如智能手机101。
图2示出了根据本申请的一个实施例的实施关联系统间的代码变更通知方法的场景示意图。
在如图2所示的场景中,包括系统A201、系统B202、系统C203、系统D204。其中,系统B箭头指向系统A,表示系统B依赖系统A,当系统A中的代码发生变更时,可以影响到系统B中的代码运行,即系统A作为上游系统,系统B作为下游系统。因而可以看出,在图2中,系统A作为系统B和系统D的上游系统,当系统A中的代码发生变更时,需要为系统B和系统D发送相对应的代码变更通知消息。
以下对本申请实施例技术方案的实现细节进行详细阐述:
根据本公开的第一方面,提供了一种关联系统间的代码变更通知方法。
参见图3,示出了根据本申请的一个实施例的关联系统间的代码变更通知方法的流程图,该关联系统间的代码变更通知方法可以由具有计算处理功能的设备来执行,比如可以由图1中所示的服务器105来执行,或者由如图1中所示的终端设备来执行。如图3所示,该关联系统间的代码变更通知方法至少包括步骤310至步骤370:
步骤310,在上游系统中确定代码变更的日志记录集合。
步骤330,通过代码版本管理工具钩子函数,在所述日志记录集合中确定与下游系统相关联的变更代码的日志记录。
步骤350,基于所述与下游系统相关联的变更代码的日志记录,生成针对所述下游系统的代码变更通知消息。
步骤370,将所述代码变更通知消息发送给所述下游系统。
下面将对如上实施步骤进行详细说明:
在步骤310中,在上游系统中确定代码变更的日志记录集合。
本申请中,上游系统中插入有代码版本管理工具,具体的,代码版本管理工具主要用于记录保存系统的项目代码,还记录每一次代码变更详细信息内容。在上游系统中存在代码变更时,可以通过上游系统中代码版本管理工具的一些内置方法来获取代码变更的所有日志信息的集合,其中包含:变更文件、变更代码行、变更具体代码内容、变更人、变更时间等等。
在本申请的一些实施例中,所述代码版本管理工具可以是Git。
在本申请的一些实施例中,所述代码版本管理工具可以是Visual Source Safe(简称VSS)。
在本申请的一些实施例中,所述代码版本管理工具可以是Subversion(简称SVN)。
在本申请的一些实施例中,所述代码版本管理工具可以是Clear Case。
继续参照图3,在步骤330中,通过代码版本管理工具钩子函数,在所述日志记录集合中确定与下游系统相关联的变更代码的日志记录。
在本申请中,代码版本管理工具钩子函数可以用于在所述代码版本管理工具进行相关操作时自动的被触发执行一些预定指令,例如,在记录系统中代码变更详细信息内容时自动被触发执行一些预定指令。
在本申请的一个实施例中,在所述代码版本管理工具钩子函数中包括有预先嵌入的代码变更检测脚本,所述在所述日志记录集合中确定与下游系统相关联的变更代码的日志记录可以通过如图4所示的步骤实现。
参见图4,示出了根据本申请的一个实施例的在所述日志记录集合中确定与下游系统相关联的变更代码的日志记录的细节流程图,具体可包括步骤331至333:
步骤331,响应于上游系统中的代码变更,触发执行所述代码变更检测脚本。
步骤332,通过所述代码变更检测脚本对所述日志记录集合进行变更检测。
步骤333,根据变更检测结果从所述日志记录集合中确定与下游系统相关联的变更代码的日志记录。
在一个实施例的具体实现中,关于步骤332中的通过所述代码变更检测脚本对所述日志记录集合进行变更检测可以按照图5所示的步骤实现。
参见图5,示出了根据本申请的一个实施例的通过所述代码变更检测脚本对所述日志记录集合进行变更检测的细节流程图,具体可包括步骤3321至3323:
步骤3321,在所述日志记录集合中读取变更代码的日志记录。
步骤3322,检测所述变更代码的日志记录与所述下游系统是否存在关联关系。
步骤3323,若所述变更代码的日志记录与所述下游系统存在关联关系,则将所述变更代码的日志记录作为与下游系统相关联的变更代码的日志记录。
具体的,在所述日志记录集合中读取变更代码的日志记录,可以包括以下至少一种:
第一种、在所述日志记录集合中读取变更代码文件的日志记录。
具体的,可以通过代码版本管理工具的日志记录查询命令,再加上系统自带的关键词过滤命令对变更日志记录进行过滤,就可以获取到最新一次的变更代码文件的日志记录。
在所述代码变更检测脚本中,可以包含已知和下游业务系统相关的上游业务系统文件路径,比如文件A的文件路径“/project/src/test.php”。通过所述代码变更检测脚本对获取到的最新一次的变更代码文件的日志记录进行检测,就可以获得与所述下游系统存在关联关系的变更代码文件的日志记录。
需要注意的是,如果过滤结果或者检测结果为空值,则说明不存在与所述下游系统存在关联关系的变更代码文件的日志记录。
第二种、在所述日志记录集合中读取变更代码行的日志记录。
具体的,所述代码行是指某一行代码在某个文件的第几行,比如文件A的第100~200行代码同下游业务系统相关。因此,代码行是依托文件而存在的。
在所述代码变更检测脚本中,可以包含已知和下游业务系统相关的上游业务系统文件路径的代码行。通过所述代码变更检测脚本对获取到的最新一次的变更代码行的日志记录进行检测,就可以获得与所述下游系统存在关联关系的变更代码文件和具体代码行的日志记录。
需要注意的是,如果过滤结果或者检测结果为空值,则说明不存在与所述下游系统存在关联关系的变更代码行的日志记录。
第三种、在所述日志记录集合中读取变更代码关键词的日志记录。
具体的,在所述代码变更检测脚本中,可以包含已知和下游业务系统相关的上游业务系统代码关键词,比如关键词“keyword_a”和:“keyword_b”。通过所述代码变更检测脚本对获取到的最新一次的变更代码关键词的日志记录进行检测,就可以获得与所述下游系统存在关联关系的变更代码关键词的日志记录。
第四种、在所述日志记录集合中读取变更代码块的日志记录。
具体的,可以提前在代码块儿的上方和下方加上特定注释,如:在代码块儿开始的地方加上注释“/**XX相关代码开始*/”,在代码块儿结束的地方加上注释:“/**XX相关代码结束*/”。
在通过所述代码变更检测脚本对获取到的最新一次的变更代码块的日志记录进行检测时,可以使用正则表达式在读取到的变更代码的日志记录中检测如上注释所标记的代码块是否有变更。如果有检测到变更,则说明有相关代码块发生变化。
在本申请的一个实施例中,在确定与下游系统相关联的变更代码的日志记录之后,还可以实施如图6所示的步骤。
参见图6,示出了根据本申请的一个实施例的在确定与下游系统相关联的变更代码的日志记录之后的方法流程图,具体可包括步骤341至342:
步骤341,根据与下游系统相关联的变更代码的日志记录,生成用于执行在下游系统中的下游系统变更代码。
在一个实施例的具体实现中,在所述上游系统中可以存在下游代码仓库,其中,所述下游代码仓库可以用于保存下游系统代码。
具体的,在步骤341中,根据与下游系统相关联的变更代码的日志记录,生成用于执行在下游系统中的下游系统变更代码可以是通过如下方式实现:根据与下游系统相关联的变更代码的日志记录,对所述下游代码仓库中下游系统代码进行更改,得到用于执行在下游系统中的下游系统变更代码。
步骤342,向所述下游系统发送合并所述下游系统变更代码的通知消息。
继续参照图3,在步骤350中,基于所述与下游系统相关联的变更代码的日志记录,生成针对所述下游系统的代码变更通知消息。
在本申请的一个实施例中,基于所述与下游系统相关联的变更代码的日志记录,生成针对所述下游系统的代码变更通知消息,可以通过如图7所示的步骤实现。
参见图7,示出了根据本申请的一个实施例的生成针对所述下游系统的代码变更通知消息的细节流程图,具体可包括步骤351至352:
步骤351,对所述与下游系统相关联的变更代码的日志记录进行信息分割,得到代码变更数组。
具体的,可以通过代码变更标识串对与下游系统相关联的变更代码的日志记录进行分割,从而生成不同文件的代码变更信息数组,其中一个代码变更部分对应一个代码变更信息数组。
步骤352,按照预设的消息格式,对所述代码变更数组进行封装,得到针对所述下游系统的代码变更通知消息。
在一个实施例的具体实现中,所述代码变更通知消息的格式可以是如下所示例的格式:
“【XXX业务代码已变更】请相关人员注意变更内容
XXX业务需及时作出相应的XXX调整具体变更内容如下:
<代码变更的详细信息>
@张三@李四”
继续参照图3,在步骤370中,将所述代码变更通知消息发送给所述下游系统。
在本申请的一个实施例中,将所述代码变更通知消息发送给所述下游系统可以通过如图8所示的步骤实施。
参见图8,示出了根据本申请的一个实施例的将所述代码变更通知消息发送给所述下游系统的细节流程图,具体可包括步骤371至372:
步骤371,确定与所述下游系统相对应的通讯群组。
步骤372,调用通讯工具消息发送接口,以将所述代码变更通知消息发送至与所述下游系统相对应的通讯群组中。
具体的,所述代码变更通知消息可以通过以下方式但不限于以下方式通知给下游系统:邮件、短信、QQ以及微信等等。
在一个实施例的具体实现中,在将所述代码变更通知消息发送至与所述下游系统相对应的通讯群组中之前,还可以实施如图9所示的步骤。
参见图9,示出了根据本申请的一个实施例的在将所述代码变更通知消息发送至与所述下游系统相对应的通讯群组中之前的方法流程图,具体可包括步骤3711至3712:
步骤3711,确定与所述下游系统相对应的人员列表,所述人员列表中包括系统维护人员。
步骤3712,检测所述人员列表中的系统维护人员是否存在于所述通讯群组中。
步骤3713,若所述人员列表中的系统维护人员不存在于所述通讯群组中,则调用通讯工具接口,以将所述系统维护人员加入至所述通讯群组中。
在本申请的一个实施例中,在将所述代码变更通知消息发送给所述下游系统之前,所述方法还可以包括:将所述代码变更通知消息上传到区块链系统中。
在一个实施例的具体实现中,所述区块链系统中的各个区块链节点可以是本申请所提及的各个系统,例如在如上实施例中所述的上游系统和下游系统,还例如图2中所示的系统A、系统B、系统C以及系统D,都可以作为所述区块链系统中的节点。
具体的,由于所述上游系统作为区块链系统中的一个节点,因此,所述代码变更通知消息在所述上游系统中生成之后,包括所述下游系统在内的各个系统中会同步所述代码变更通知消息。
这样做的好处在于两个方面:一方面,所述下游系统中的系统维护人员会及时的得知所述代码变更通知消息,以对所述下游系统中的代码进行更改。另一方面,可以防止所述代码变更通知消息被丢失或者被篡改,从而保证了区块系统中代码变更通知消息的安全性。例如,若所述代码变更通知消息在下游系统中被下游系统维护人员误删,由于在其它系统节点中还同步存在所述代码变更通知消息,因此,所述下游系统还可以二次同步所述代码变更通知消息。
在一个实施例的具体实现中,所述区块链系统还可以是专门用于存储数据的数据存储系统,在所述数据存储系统中,可以包括多个节点,其中,每个节点都可以存储所述代码变更通知消息。为了保证数据共享系统内的信息互通,数据存储系统中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行消息传输。例如,当数据存储系统中的任意节点接收到所述代码变更通知消息时,数据存储系统中的其他节点便根据共识算法获取该代码变更通知消息,将该代码变更通知消息作为存储数据中的数据进行存储,使得数据存储系统中全部节点上存储的代码变更通知消息均一致。
具体的,所述数据存储系统中的任意一个节点都可以将所述代码变更通知消息发送给本申请中所述的下游系统。
这样做的好处在于:由于存储在以区块链为基础的数据存储系统中的数据具有不可更改性和不易丢失性,所以,首先将所述代码变更通知消息上传到以区块链为基础的数据存储系统中进行存储,然后通过数据存储系统发送给所述下游系统,可以所述代码变更通知消息的安全性。为了使本领域技术人员更直观的理解将所述代码变更通知消息发送至与所述下游系统相对应的通讯群组中,下面将参照图10进行说明。
参见图10,示出了根据本申请的一个实施例的将所述代码变更通知消息发送至与所述下游系统相对应的通讯群组中的界面展示图。
如图所示,界面1001显示的“系统维护群”中包括3位下游系统的维护人员,在上游系统中进行代码变更之后,上游系统中的机器人在“系统维护群”中发送了一条代码变更消息提醒,并@了所有人,下游系统维护人员在点击“详情”之后,便可以了解与下游系统相关的上游系统代码变更的具体信息。其中,界面展示如1002所示的内容:
“【XXX业务代码已变更】请相关人员注意变更内容
XXX业务需及时作出相应的XXX调整
具体变更内容如下:
<代码变更的详细信息>
@张三@李四”
为了使本领域技术人员更加理解本申请的技术方案,下面将通过图11对本申请的关联系统间代码变更实时通知方法进行详细阐述:
如图11,示出了根据本申请的一个实施例的在关联系统间进行代码变更实时通知的流程示例图。
具体的,上游系统A的维护人员会提前在钩子函数在中嵌入和下游系统代码相关联的代码变动检测脚本、向下游系统发起代码变更消息的脚本以及向下游系统发起代码合并请求的脚本。当上游系统A的维护人员上游系统A中进行代码更改、进行代码提交、推送等操作之后,对应操作的代码版本管理工具钩子函数会立即执行代码变动检测脚本,来检测变更的代码是否同下游系统B相关。如果不相关,则结束流程,不再执行其他任何操作;如果相关,则保存同下游系统B相关的代码变更的具体内容,并继续执行向下游系统发起代码变更消息的脚本,发送消息给下游系统B的维护人员,随后再由下游系统B的维护人员进行相关处理。此外,如果上游业务系统和下游系统关联性有规律,还可以根据上游系统A中代码变更详细内容自动生成下游业务系统B的变更代码,并发起代码合并请求给下游系统B的维护人员,以请求是否合并所述变更代码。
在本申请的一些实施例所提供的技术方案中,通过代码版本管理工具钩子函数,在上游系统中确定的代码变更的日志记录集合中进一步确定与下游系统相关联的变更代码的日志记录,并根据与下游系统相关联的变更代码的日志记录,生成可以发送给下游系统的代码变更通知消息。由于代码版本管理工具钩子函数在进行代码变更相关操作时可以自动的被触发执行一些预定指令,例如,通过代码版本管理工具钩子函数,可以使得在上游系统中进行与下游系统相关的代码变更时,生成可以发送给下游系统的代码变更通知消息,因此,本申请的方案能够提高在关联系统之间进行代码变更通知的及时性。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的关联系统间的代码变更通知方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的关联系统间的代码变更通知方法的实施例。
图12示出了根据本申请的一个实施例的关联系统间的代码变更通知装置的框图。
参照图12所示,根据本申请的一个实施例的关联系统间的代码变更通知装置1200,包括:第一确定单元1201、第二确定单元1202、第一生成单元1203和发送单元1204。
其中,第一确定单元1201,被用于在上游系统中确定代码变更的日志记录集合;第二确定单元1202,被用于通过代码版本管理工具钩子函数,在所述日志记录集合中确定与下游系统相关联的变更代码的日志记录;第一生成单元1203,被用于基于所述与下游系统相关联的变更代码的日志记录,生成针对所述下游系统的代码变更通知消息;发送单元1204,被用于将所述代码变更通知消息发送给所述下游系统。
在本申请的一些实施例中,基于前述方案,所述代码版本管理工具钩子函数中包括预先嵌入的代码变更检测脚本,所述第二确定单元1202配置为:响应于上游系统中的代码变更,触发执行所述代码变更检测脚本;通过所述代码变更检测脚本对所述日志记录集合进行变更检测;根据变更检测结果从所述日志记录集合中确定与下游系统相关联的变更代码的日志记录。
在本申请的一些实施例中,基于前述方案,所述第二确定单元1202还配置为:在所述日志记录集合中读取变更代码的日志记录;检测所述变更代码的日志记录与所述下游系统是否存在关联关系;若所述变更代码的日志记录与所述下游系统存在关联关系,则将所述变更代码的日志记录作为与下游系统相关联的变更代码的日志记录。
在本申请的一些实施例中,基于前述方案,在所述日志记录集合中读取变更代码的日志记录,包括以下至少一种:在所述日志记录集合中读取变更代码文件的日志记录;在所述日志记录集合中读取变更代码行的日志记录;在所述日志记录集合中读取变更代码关键词的日志记录;在所述日志记录集合中读取变更代码块的日志记录。
在本申请的一些实施例中,基于前述方案,所述装置还包括第二生成单元,被用于在所述日志记录集合中确定与下游系统相关联的变更代码的日志记录之后,根据与下游系统相关联的变更代码的日志记录,生成用于执行在下游系统中的下游系统变更代码;所述发送单元1204配置为:向所述下游系统发送合并所述下游系统变更代码的通知消息。
在本申请的一些实施例中,基于前述方案,在所述上游系统中存在下游代码仓库,所述下游代码仓库用于保存下游系统代码,所述第二生成单元配置为:根据与下游系统相关联的变更代码的日志记录,对所述下游代码仓库中下游系统代码进行更改,得到用于执行在下游系统中的下游系统变更代码。
在本申请的一些实施例中,基于前述方案,所述第一生成单元1203配置为:对所述与下游系统相关联的变更代码的日志记录进行信息分割,得到代码变更数组;按照预设的消息格式,对所述代码变更数组进行封装,得到针对所述下游系统的代码变更通知消息。
在本申请的一些实施例中,基于前述方案,所述发送单元1204配置为:确定与所述下游系统相对应的通讯群组;调用通讯工具消息发送接口,以将所述代码变更通知消息发送至与所述下游系统相对应的通讯群组中。
在本申请的一些实施例中,基于前述方案,所述发送单元1204还配置为:在将所述代码变更通知消息发送至与所述下游系统相对应的通讯群组中之前,确定与所述下游系统相对应的人员列表,所述人员列表中包括系统维护人员;检测所述人员列表中的系统维护人员是否存在于所述通讯群组中;若所述人员列表中的系统维护人员不存在于所述通讯群组中,则调用通讯工具接口,以将所述系统维护人员加入至所述通讯群组中。
在本申请的一些实施例中,基于前述方案,所述发送单元1204还配置为:在将所述代码变更通知消息发送给所述下游系统之前,将所述代码变更通知消息上传到区块链系统中。
图13示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图13示出的电子设备的计算机系统1300仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图13所示,计算机系统1300包括中央处理单元(Central Processing Unit,CPU)1301,其可以根据存储在只读存储器(Read-Only Memory,ROM)1302中的程序或者从存储部分1308加载到随机访问存储器(Random Access Memory,RAM)1303中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1303中,还存储有系统操作所需的各种程序和数据。CPU 1301、ROM 1302以及RAM 1303通过总线1304彼此相连。输入/输出(Input/Output,I/O)接口1305也连接至总线1304。
以下部件连接至I/O接口1305:包括键盘、鼠标等的输入部分1306;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1307;包括硬盘等的存储部分1308;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1309。通信部分1309经由诸如因特网的网络执行通信处理。驱动器1310也根据需要连接至I/O接口1305。可拆卸介质1311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1310上,以便于从其上读出的计算机程序根据需要被安装入存储部分1308。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1309从网络上被下载和安装,和/或从可拆卸介质1311被安装。在该计算机程序被中央处理单元(CPU)1301执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (9)

1.一种关联系统间的代码变更通知方法,其特征在于,所述方法包括:
在上游系统中确定代码变更的日志记录集合,所述日志记录集合是在上游系统中存在代码变更时获取到的;
通过代码版本管理工具钩子函数,执行下列操作:响应于上游系统中的代码变更,触发执行所述代码版本管理工具钩子函数中包括的预先嵌入的代码变更检测脚本;在所述日志记录集合中读取变更代码的日志记录;检测所述变更代码的日志记录与下游系统是否存在关联关系;若所述变更代码的日志记录与所述下游系统存在关联关系,则将所述变更代码的日志记录作为与下游系统相关联的变更代码的日志记录;根据变更检测结果从所述日志记录集合中确定与下游系统相关联的变更代码的日志记录;
基于所述与下游系统相关联的变更代码的日志记录,生成针对所述下游系统的代码变更通知消息;
将所述代码变更通知消息发送给所述下游系统。
2.根据权利要求1所述的方法,其特征在于,在所述日志记录集合中读取变更代码的日志记录,包括以下至少一种:
在所述日志记录集合中读取变更代码文件的日志记录;
在所述日志记录集合中读取变更代码行的日志记录;
在所述日志记录集合中读取变更代码关键词的日志记录;
在所述日志记录集合中读取变更代码块的日志记录。
3.根据权利要求1所述的方法,其特征在于,在根据变更检测结果从所述日志记录集合中确定与下游系统相关联的变更代码的日志记录之后,所述方法还包括:
根据与下游系统相关联的变更代码的日志记录,生成用于执行在下游系统中的下游系统变更代码;
向所述下游系统发送合并所述下游系统变更代码的通知消息。
4.根据权利要求3所述的方法,其特征在于,在所述上游系统中存在下游代码仓库,所述下游代码仓库用于保存下游系统代码,所述根据与下游系统相关联的变更代码的日志记录,生成用于执行在下游系统中的下游系统变更代码,包括:
根据与下游系统相关联的变更代码的日志记录,对所述下游代码仓库中下游系统代码进行更改,得到用于执行在下游系统中的下游系统变更代码。
5.根据权利要求1所述的方法,其特征在于,所述基于所述与下游系统相关联的变更代码的日志记录,生成针对所述下游系统的代码变更通知消息,包括:
对所述与下游系统相关联的变更代码的日志记录进行信息分割,得到代码变更数组;
按照预设的消息格式,对所述代码变更数组进行封装,得到针对所述下游系统的代码变更通知消息。
6.根据权利要求1所述的方法,其特征在于,所述将所述代码变更通知消息发送给所述下游系统,包括:
确定与所述下游系统相对应的通讯群组;
调用通讯工具消息发送接口,以将所述代码变更通知消息发送至与所述下游系统相对应的通讯群组中。
7.根据权利要求1所述的方法,其特征在于,在将所述代码变更通知消息发送给所述下游系统之前,所述方法还包括:
将所述代码变更通知消息上传到区块链系统中。
8.一种关联系统间的代码变更通知装置,其特征在于,包括:
第一确定单元,被用于在上游系统中确定代码变更的日志记录集合,所述日志记录集合是在上游系统中存在代码变更时获取到的;
第二确定单元,被用于通过代码版本管理工具钩子函数,执行下列操作:响应于上游系统中的代码变更,触发执行所述代码版本管理工具钩子函数中包括的预先嵌入的代码变更检测脚本;在所述日志记录集合中读取变更代码的日志记录;检测所述变更代码的日志记录与下游系统是否存在关联关系;若所述变更代码的日志记录与所述下游系统存在关联关系,则将所述变更代码的日志记录作为与下游系统相关联的变更代码的日志记录;根据变更检测结果从所述日志记录集合中确定与下游系统相关联的变更代码的日志记录;
第一生成单元,被用于基于所述与下游系统相关联的变更代码的日志记录,生成针对所述下游系统的代码变更通知消息;
发送单元,被用于将所述代码变更通知消息发送给所述下游系统。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-7任意一项所述的关联系统间的代码变更通知方法。
CN201911265854.1A 2019-12-11 2019-12-11 关联系统间的代码变更通知方法、装置 Active CN111045723B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911265854.1A CN111045723B (zh) 2019-12-11 2019-12-11 关联系统间的代码变更通知方法、装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911265854.1A CN111045723B (zh) 2019-12-11 2019-12-11 关联系统间的代码变更通知方法、装置

Publications (2)

Publication Number Publication Date
CN111045723A CN111045723A (zh) 2020-04-21
CN111045723B true CN111045723B (zh) 2024-01-26

Family

ID=70235698

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911265854.1A Active CN111045723B (zh) 2019-12-11 2019-12-11 关联系统间的代码变更通知方法、装置

Country Status (1)

Country Link
CN (1) CN111045723B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105447099A (zh) * 2015-11-11 2016-03-30 中国建设银行股份有限公司 日志结构化信息提取方法及装置
CN105893259A (zh) * 2016-03-31 2016-08-24 广州华多网络科技有限公司 代码检测系统、方法及装置
CN106445476A (zh) * 2015-08-11 2017-02-22 腾讯科技(深圳)有限公司 一种代码变更信息确定方法、装置及电子设备
CN106713392A (zh) * 2015-11-13 2017-05-24 阿里巴巴集团控股有限公司 数据同步方法、装置和系统
US20170147336A1 (en) * 2015-11-19 2017-05-25 Ca, Inc. Method and system for determining logging statement code coverage
CN107894895A (zh) * 2017-11-06 2018-04-10 网易(杭州)网络有限公司 代码更新的处理方法、装置、存储介质、处理器及服务器
CN108228256A (zh) * 2018-02-05 2018-06-29 武汉斗鱼网络科技有限公司 代码同步方法、装置、计算机可读介质及终端
CN109213516A (zh) * 2017-07-01 2019-01-15 武汉斗鱼网络科技有限公司 Svn中代码同步与通知的方法、存储介质、设备和系统
CN109582731A (zh) * 2018-10-18 2019-04-05 恒峰信息技术有限公司 一种数据实时同步方法及系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106445476A (zh) * 2015-08-11 2017-02-22 腾讯科技(深圳)有限公司 一种代码变更信息确定方法、装置及电子设备
CN105447099A (zh) * 2015-11-11 2016-03-30 中国建设银行股份有限公司 日志结构化信息提取方法及装置
CN106713392A (zh) * 2015-11-13 2017-05-24 阿里巴巴集团控股有限公司 数据同步方法、装置和系统
US20170147336A1 (en) * 2015-11-19 2017-05-25 Ca, Inc. Method and system for determining logging statement code coverage
CN105893259A (zh) * 2016-03-31 2016-08-24 广州华多网络科技有限公司 代码检测系统、方法及装置
CN109213516A (zh) * 2017-07-01 2019-01-15 武汉斗鱼网络科技有限公司 Svn中代码同步与通知的方法、存储介质、设备和系统
CN107894895A (zh) * 2017-11-06 2018-04-10 网易(杭州)网络有限公司 代码更新的处理方法、装置、存储介质、处理器及服务器
CN108228256A (zh) * 2018-02-05 2018-06-29 武汉斗鱼网络科技有限公司 代码同步方法、装置、计算机可读介质及终端
CN109582731A (zh) * 2018-10-18 2019-04-05 恒峰信息技术有限公司 一种数据实时同步方法及系统

Also Published As

Publication number Publication date
CN111045723A (zh) 2020-04-21

Similar Documents

Publication Publication Date Title
US11461768B2 (en) Systems and methods for data file transfer balancing and control on blockchain
US20190116142A1 (en) Messaging balancing and control on blockchain
US20190114182A1 (en) Api request and response balancing and control on blockchain
WO2019199988A1 (en) Data enrichment environment using blockchain
US20200389402A1 (en) Augmenting functionality in distributed systems with payload headers
CN110278143B (zh) 电子邮件数据处理方法、装置、计算机设备及存储介质
CN112463729B (zh) 数据文件的入库方法、装置、电子设备和介质
US20200097355A1 (en) Method and apparatus for outputting information
CN111694677A (zh) 消息队列的管理方法、装置、终端和计算机可读存储介质
CN111045723B (zh) 关联系统间的代码变更通知方法、装置
CN116737662A (zh) 业务数据处理的方法、装置、电子设备和存储介质
CN112445860A (zh) 一种处理分布式事务的方法和装置
CN115187364A (zh) 银行分布式场景下保证金风险监控的方法及装置
CN114936249A (zh) 一种文件解析、转换方法、装置、设备及可读存储介质
CN111290873B (zh) 故障处理方法和装置
CN114416560A (zh) 程序崩溃分析聚合方法和系统
CN111367898A (zh) 数据处理方法、装置、系统、电子设备及存储介质
CN111786936A (zh) 用于鉴权的方法和装置
US20240056477A1 (en) Methods and systems for detecting malicious messages
CN110912720B (zh) 信息生成方法和装置
US20240111856A1 (en) Providing password security in non-federated computing arrangements
CN114417304A (zh) 一种数据校验方法和装置
CN117395159A (zh) 一种对联盟链进行测试的方法和装置
CN117149483A (zh) 一种分布式存储系统的异常处理方法和装置
CN113377629A (zh) 监控用户异常编码的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40021480

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant