CN109240816A - ***方案切换方法、装置、计算机设备和存储介质 - Google Patents

***方案切换方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN109240816A
CN109240816A CN201811002915.0A CN201811002915A CN109240816A CN 109240816 A CN109240816 A CN 109240816A CN 201811002915 A CN201811002915 A CN 201811002915A CN 109240816 A CN109240816 A CN 109240816A
Authority
CN
China
Prior art keywords
class
realization
dependence
switching
goal
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.)
Granted
Application number
CN201811002915.0A
Other languages
English (en)
Other versions
CN109240816B (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.)
Tianyi Digital Life Technology Co Ltd
Original Assignee
CENTURY DRAGON INFORMATION NETWORK 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 CENTURY DRAGON INFORMATION NETWORK Co Ltd filed Critical CENTURY DRAGON INFORMATION NETWORK Co Ltd
Priority to CN201811002915.0A priority Critical patent/CN109240816B/zh
Publication of CN109240816A publication Critical patent/CN109240816A/zh
Application granted granted Critical
Publication of CN109240816B publication Critical patent/CN109240816B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

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

Abstract

本申请涉及一种***方案切换方法、装置、计算机设备和存储介质。所述方法包括:获取监听到的***返回的异常信息,根据所述异常信息触发对应的切换指令,所述切换指令携带第一目标对象的目标依赖关系;根据所述切换指令,在预设对象库中查找所述第一目标对象的依赖关系;根据所述目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与所述类对应的目标实现类;根据所述目标实现类,控制所述***从与所述初始实现类对应的方案切换至与所述目标实现类对应的方案。采用本方法能够实现通过动态修改依赖关系即可实现对***方案的切换的目的,从而简化了***方案切换流程,提高了***方案切换效率。

Description

***方案切换方法、装置、计算机设备和存储介质
技术领域
本发明涉及计算机技术领域,特别是涉及一种***方案切换方法、装置、计算机设备和存储介质。
背景技术
在计算机技术领域里,***中的每个接口都会对应着多个不同的处理方案,即待切换的方案或备方案,当出现不同的问题时,服务器通过触发程序,采取不同的方案进行处理。
然而,目前对于方案的切换,往往是在计算机代码中为一种方案埋入一个控制开关;通过对整个集群进行消息广播,从而通知各节点机器修改控制开关的相关配置,在程序触发时判断到相关配置的状态发生变化而执行与控制开关对应的分支所代表的方案,但容易造成代码浸入和耦合性较高;若要改变开关规则,需要对原代码进行修改,从而导致***方案的切换效率低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高***方案的切换效率的***方案切换方法、装置、计算机设备和存储介质。
一种***方案切换方法,所述方法包括:
获取监听到的***返回的异常信息,根据所述异常信息触发对应的切换指令,所述切换指令携带第一目标对象的目标依赖关系;
根据所述切换指令,在预设对象库中查找所述第一目标对象的依赖关系;
根据所述目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与所述类对应的目标实现类;
根据所述目标实现类,控制所述***从与所述初始实现类对应的方案切换至与所述目标实现类对应的方案。
在其中一个实施例中,所述根据所述异常信息触发对应的切换指令,包括:
识别所述异常信息,确定所述***的异常等级和第一目标对象;
根据异常等级与切换等级的对应关系,确定所述***的切换等级;
获取与所述切换等级对应的依赖关系,作为所述第一目标对象的目标依赖关系;
根据所述目标依赖关系,触发对应的切换指令。
在其中一个实施例中,所述根据所述切换指令,在预设对象库中查找所述第一目标对象的待修改依赖关系,包括:
在预设对象库中筛选出携带有标记信息的对象;
从筛选出的对象中查找所述第一目标对象;
获取与所述第一目标对象对应的依赖关系。
在其中一个实施例中,所述根据所述目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与所述类对应的目标实现类,包括:
提取查找到的依赖关系中的类对应的初始实现类;
获取所述目标依赖关系中的类对应的目标实现类;
通过预设方式将所述依赖关系中的类对应的初始实现类替换为所述目标实现类,得到与所述类对应的目标实现类。
在其中一个实施例中,在根据所述目标实现类,控制所述***从与所述初始实现类对应的方案切换至与所述目标实现类对应的方案之前,还包括:
将所述类与所述目标实现类的对应关系,作为所述第一目标对象的已修改依赖关系;
将所述第一目标对象的已修改依赖关系导入到预设信息配置表中,以更新所述信息配置表;
查询所述信息配置表,确定所述目标实现类对应的方案以及切换方式;
所述根据所述目标实现类,控制所述***从与所述初始实现类对应的方案切换至与所述目标实现类对应的方案,包括:
根据所述切换方式,控制所述***从与所述初始实现类对应的方案切换至与所述目标实现类对应的方案。
在其中一个实施例中,在根据所述目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与所述类对应的目标实现类之后,在根据所述目标实现类,控制所述***从与所述初始实现类对应的方案切换至与所述目标实现类对应的方案之前,还包括:
获取所述第一目标对象的类型;
在预设对象库中查找与所述第一目标对象的类型对应的对象,作为第二目标对象;
获取与所述第二目标对象对应的依赖关系;
将所述依赖关系中的类对应的初始实现类替换为所述目标实现类。
在其中一个实施例中,所述方法还包括:
读取信息配置表中各个对象的依赖关系;
分别根据读取到的各个对象的依赖关系,对预设对象库中对应的对象的依赖关系进行更新;
对***返回的异常信息进行监听。
一种***方案切换装置,所述装置包括:
指令触发模块,用于获取监听到的***返回的异常信息,根据所述异常信息触发对应的切换指令,所述切换指令携带第一目标对象的目标依赖关系;
关系查找模块,用于根据所述切换指令,在预设对象库中查找所述第一目标对象的依赖关系;
关系修改模块,用于根据所述目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与所述类对应的目标实现类;
方案切换模块,用于根据所述目标实现类,控制所述***从与所述初始实现类对应的方案切换至与所述目标实现类对应的方案。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取监听到的***返回的异常信息,根据所述异常信息触发对应的切换指令,所述切换指令携带第一目标对象的目标依赖关系;
根据所述切换指令,在预设对象库中查找所述第一目标对象的依赖关系;
根据所述目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与所述类对应的目标实现类;
根据所述目标实现类,控制所述***从与所述初始实现类对应的方案切换至与所述目标实现类对应的方案。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取监听到的***返回的异常信息,根据所述异常信息触发对应的切换指令,所述切换指令携带第一目标对象的目标依赖关系;
根据所述切换指令,在预设对象库中查找所述第一目标对象的依赖关系;
根据所述目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与所述类对应的目标实现类;
根据所述目标实现类,控制所述***从与所述初始实现类对应的方案切换至与所述目标实现类对应的方案。
上述***方案切换方法、装置、计算机设备和存储介质,服务器获取监听到的***返回的异常信息,根据异常信息触发对应的切换指令;根据切换指令携带的第一目标对象的目标依赖关系,在预设对象库中查找第一目标对象的依赖关系;根据目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与类对应的目标实现类;根据目标实现类,控制***从与初始实现类对应的方案切换至与目标实现类对应的方案;当监听到***发生异常时,通过切换指令,触发修改对应的依赖关系,以控制***切换至对应的方案,实现了通过动态修改依赖关系即可实现对***方案的切换的目的,无需通过修改代码的形式去修改控制开关,从而简化了***方案切换流程,提高了***方案切换效率;同时避免了修改代码而导致代码浸入和耦合性较高的缺陷。
附图说明
图1为一个实施例中***方案切换方法的应用环境图;
图2为一个实施例中***方案切换方法的流程示意图;
图3为一个实施例中根据异常信息触发对应的切换指令的步骤的流程示意图;
图4为另一个实施例中***方案切换方法的流程示意图;
图5为又一个实施例中***方案切换方法的流程示意图;
图6为一个实施例中***方案切换装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的***方案切换方法,可以应用于如图1所示的应用环境中。其中,终端110与服务器120通过网络进行通信;终端110安装了***,***可以运行多种方案。服务器120对终端110中的***进行监听,当监听到***发生异常时,获取监听到的***返回的异常信息,并根据异常信息触发对应的切换指令;根据切换指令携带的第一目标对象的目标依赖关系,在预设对象库中查找第一目标对象的依赖关系;根据目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与类对应的目标实现类;根据目标实现类,控制终端110中的***从与初始实现类对应的方案切换至与目标实现类对应的方案。其中,终端110可以但不限于是各种个人计算机、笔记本电脑和平板电脑,服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种***方案切换方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤S201,获取监听到的***返回的异常信息,根据异常信息触发对应的切换指令,切换指令携带第一目标对象的目标依赖关系。
***是指运行在终端上,可以实现多种备方案的***,具体本申请不做限定。备方案通常是指为故障转移、高并发、分流等情况而开发的另外一种方案。异常信息是指与***在运行期间出现故障、版本升级等异常情况相关的信息。
另外,切换指令是一种能够触发***切换至与切换指令对应的方案的指令;不同的切换指令,能够触发***切换至不同的方案。依赖关系指的是类与实现类的对应关系,每一个类可以对应多个实现类,实现类是指待切换的方案或者备方案。目标对象指的是实现类的对象;通常用类声明并创建一个实现类的对象,通过该对象调用该类的方法进行相关操作。
服务器对终端中的***进行监听,当监听到***发生异常时,获取监听到的***返回的异常信息,解析异常信息,得到第一目标对象,并确定***待切换的方案;根据***待切换的方案,得到第一目标对象的目标依赖关系;根据该目标依赖关系,触发对应的切换指令,方便后续根据切换指令控制***切换方案,实现了对***的实时监控,避免***出现异常时而无法控制***切换至对应的方案的缺陷。
步骤S202,根据切换指令,在预设对象库中查找第一目标对象的依赖关系。
预设对象库是一个Spring容器,包含多种对象以及与各对象对应的依赖关系。服务器解析切换指令,得到第一目标对象的目标依赖关系;根据第一目标对象的目标依赖关系,在预设对象库中查找第一目标对象的依赖关系,方便后续对查找到的依赖关系进行修改,以实现对***方案的切换,避免通过修改代码的形式去修改控制开关,而导致***方案切换效率低的缺陷。
步骤S203,根据目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与类对应的目标实现类。
服务器根据目标依赖关系中的类与目标实现类的对应关系,主动对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与类对应的目标实现类,实现了对依赖关系的修改,有利于后续根据修改后的依赖关系,对***方案进行切换,实现了通过动态修改依赖关系即可实现对***方案的切换的目的,避免了修改代码而导致代码浸入和耦合性较高的缺陷。
步骤S204,根据目标实现类,控制***从与初始实现类对应的方案切换至与目标实现类对应的方案。
服务器在配置有多种对象的依赖关系以及与实现类对应的方案的信息配置表中,获取与目标实现类对应的方案,控制***从与初始实现类对应的方案切换至与目标实现类对应的方案,简化了***方案切换流程,进一步提高了***方案切换效率。
上述***方案切换方法中,服务器获取监听到的***返回的异常信息,根据异常信息触发对应的切换指令;根据切换指令携带的第一目标对象的目标依赖关系,在预设对象库中查找第一目标对象的依赖关系;根据目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与类对应的目标实现类;根据目标实现类,控制***从与初始实现类对应的方案切换至与目标实现类对应的方案;当监听到***发生异常时,通过切换指令,触发修改对应的依赖关系,以控制***切换至对应的方案,实现了通过动态修改依赖关系即可实现对***方案的切换的目的,无需通过修改代码的形式去修改控制开关,从而简化了***方案切换流程,提高了***方案切换效率;同时避免了修改代码而导致代码浸入和耦合性较高的缺陷。
在一个实施例中,如图3所述,根据异常信息触发对应的切换指令的步骤具体包括:
步骤S301,识别异常信息,确定***的异常等级和第一目标对象。
服务器基于大数据,预先收集了***的异常信息,分别分析***的异常信息,并为***的异常信息添加对应的异常等级;通过多次分析后,建立异常信息与异常等级的对应关系,并存储于本地数据库中。服务器识别***的异常信息,确定与***的异常信息对应的异常等级,并确定***当前声明的第一目标对象。
步骤S302,根据异常等级与切换等级的对应关系,确定***的切换等级。
步骤S303,获取与切换等级对应的依赖关系,作为第一目标对象的目标依赖关系。
步骤S304,根据目标依赖关系,触发对应的切换指令。
需要说明的是,异常等级与切换等级存在一一对应的关系;切换等级与依赖关系也存在一一对应的关系。另外,对于***的当前等级来说,切换等级可以大于当前等级,也可以小于当前等级,具体根据***不同的异常信息而定。
服务器通过识别异常信息,确定***的异常等级,进而确定***的切换等级;获取与切换等级对应的依赖关系,根据依赖关系触发对应的切换指令,方便后续对依赖关系进行修改,以控制***切换至对应的方案,进一步提高了***方案切换效率。
在一个实施例中,上述步骤S202,根据切换指令,在预设对象库中查找第一目标对象的依赖关系,包括:在预设对象库中筛选出携带有标记信息的对象;从筛选出的对象中查找第一目标对象;获取与第一目标对象对应的依赖关系。携带有标记信息的对象是指标记有@Switcher的对象。服务器检测携带有标记信息的对象,无需遍历预设对象库中包含的所有对象,进一步简化了***方案切换流程,提高了***方案切换效率。
在一个实施例中,上述步骤S203,根据目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与类对应的目标实现类,包括:提取查找到的依赖关系中的类对应的初始实现类;获取目标依赖关系中的类对应的目标实现类;通过预设方式将依赖关系中的类对应的初始实现类替换为目标实现类,得到与类对应的目标实现类。服务器通过Java的反射机制,主动将查找到的依赖关系中的类对应的初始实现类替换为目标实现类,无需通过修改代码的形式去修改控制开关,从而简化了***方案切换流程,提高了***方案切换效率;同时避免了修改代码而导致代码浸入和耦合性较高的缺陷。
在一个实施例中,上述步骤S204,在根据目标实现类,控制***从与初始实现类对应的方案切换至与目标实现类对应的方案之前,还包括:将类与目标实现类的对应关系,作为第一目标对象的已修改依赖关系;将第一目标对象的已修改依赖关系导入到预设信息配置表中,以更新信息配置表;查询信息配置表,确定目标实现类对应的方案以及切换方式。
在一个实施例中,上述步骤S204,根据目标实现类,控制***从与初始实现类对应的方案切换至与目标实现类对应的方案,包括:根据切换方式,控制***从与初始实现类对应的方案切换至与目标实现类对应的方案。服务器通过特定的切换方式,控制***切换至与目标实现类对应的方案,进一步实现了提高***方案切换效率的目的。
在一个实施例中,如图4所示,提供了另一种***方案切换方法,包括以下步骤:
步骤S401,获取监听到的***返回的异常信息,根据异常信息触发对应的切换指令,切换指令携带第一目标对象的目标依赖关系。
步骤S402,根据切换指令,在预设对象库中查找第一目标对象的依赖关系。
步骤S403,根据目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与类对应的目标实现类。
步骤S404,将类与目标实现类的对应关系,作为第一目标对象的已修改依赖关系;将第一目标对象的已修改依赖关系导入到预设信息配置表中,以更新信息配置表;查询信息配置表,确定目标实现类对应的方案以及切换方式。
步骤S405,根据切换方式,控制***从与初始实现类对应的方案切换至与目标实现类对应的方案。
上述***方案切换方法,实现了通过动态修改依赖关系即可实现对***方案的切换的目的,无需通过修改代码的形式去修改控制开关,从而简化了***方案切换流程,提高了***方案切换效率;同时避免了修改代码而导致代码浸入和耦合性较高的缺陷。
在一个实施例中,在根据目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与类对应的目标实现类之后,在根据目标实现类,控制***从与初始实现类对应的方案切换至与目标实现类对应的方案之前,还包括:获取第一目标对象的类型;在预设对象库中查找与第一目标对象的类型对应的对象,作为第二目标对象;获取与第二目标对象对应的依赖关系;将依赖关系中的类对应的初始实现类替换为目标实现类。第二目标对象是与第一目标对象相关的成员变量,通过服务器对第二目标对象的依赖关系进行修改,可以批量修改相关的依赖关系,避免一次切换需要配置管理多个不同的依赖关系,导致过程比较繁琐的缺陷。
在一个实施例中,***方案切换方法还包括:读取信息配置表中各个对象的依赖关系;分别根据读取到的各个对象的依赖关系,对预设对象库中对应的对象的依赖关系进行更新;对***返回的异常信息进行监听。实现了对预设对象库中的对象的依赖关系的更新,以及对***进行实时监控的效果,避免***出现异常时而无法控制***切换至对应的方案的缺陷。
在一个实施例中,如图5所示,提供了又一种***方案切换方法,包括以下步骤:
步骤S501,读取信息配置表中各个对象的依赖关系;分别根据读取到的各个对象的依赖关系,对预设对象库中对应的对象的依赖关系进行更新;对***返回的异常信息进行监听。
步骤S502,获取监听到的***返回的异常信息,根据异常信息触发对应的切换指令,切换指令携带第一目标对象的目标依赖关系。
步骤S503,根据切换指令,在预设对象库中查找第一目标对象的依赖关系。
步骤S504,根据目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与类对应的目标实现类。
步骤S505,根据目标实现类,控制***从与初始实现类对应的方案切换至与目标实现类对应的方案。
上述***方案切换方法,实现了通过动态修改依赖关系即可实现对***方案的切换的目的,无需通过修改代码的形式去修改控制开关,从而简化了***方案切换流程,提高了***方案切换效率;而且避免了修改代码而导致代码浸入和耦合性较高的缺陷;同时实现了对预设对象库中的对象的依赖关系的更新,以及对***进行实时监控的效果,避免***出现异常时而无法控制***切换至对应的方案的缺陷。
应该理解的是,虽然图2-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种***方案切换装置,包括:指令触发模块610、关系查找模块620、关系修改模块630和方案切换模块640,其中:
指令触发模块610,用于获取监听到的***返回的异常信息,根据异常信息触发对应的切换指令,切换指令携带第一目标对象的目标依赖关系。
关系查找模块620,用于根据切换指令,在预设对象库中查找第一目标对象的依赖关系。
关系修改模块630,用于根据目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与类对应的目标实现类;
方案切换模块640,用于根据目标实现类,控制***从与初始实现类对应的方案切换至与目标实现类对应的方案。
在一个实施例中,指令触发模块还用于识别异常信息,确定***的异常等级和第一目标对象;根据异常等级与切换等级的对应关系,确定***的切换等级;获取与切换等级对应的依赖关系,作为第一目标对象的目标依赖关系;根据目标依赖关系,触发对应的切换指令。
在一个实施例中,关系查找模块还用于在预设对象库中筛选出携带有标记信息的对象;从筛选出的对象中查找第一目标对象;获取与第一目标对象对应的依赖关系。
在一个实施例中,关系修改模块还用于提取查找到的依赖关系中的类对应的初始实现类;获取目标依赖关系中的类对应的目标实现类;通过预设方式将依赖关系中的类对应的初始实现类替换为目标实现类,得到与类对应的目标实现类。
在一个实施例中,***方案切换装置还包括方案确定模块,用于方案切换模块根据目标实现类,控制***从与初始实现类对应的方案切换至与目标实现类对应的方案之前,将类与目标实现类的对应关系,作为第一目标对象的已修改依赖关系;将第一目标对象的已修改依赖关系导入到预设信息配置表中,以更新信息配置表;查询信息配置表,确定目标实现类对应的方案以及切换方式。
在一个实施例中,方案切换模块还用于根据切换方式,控制***从与初始实现类对应的方案切换至与目标实现类对应的方案。
在一个实施例中,***方案切换装置还包括关系替换模块,用于获取第一目标对象的类型;在预设对象库中查找与第一目标对象的类型对应的对象,作为第二目标对象;获取与第二目标对象对应的依赖关系;将依赖关系中的类对应的初始实现类替换为目标实现类。
在一个实施例中,***方案切换装置还包括监听模块,用于读取信息配置表中各个对象的依赖关系;分别根据读取到的各个对象的依赖关系,对预设对象库中对应的对象的依赖关系进行更新;对***返回的异常信息进行监听。
上述各个实施例,***方案切换装置获取监听到的***返回的异常信息,根据异常信息触发对应的切换指令;根据切换指令携带的第一目标对象的目标依赖关系,在预设对象库中查找第一目标对象的依赖关系;根据目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与类对应的目标实现类;根据目标实现类,控制***从与初始实现类对应的方案切换至与目标实现类对应的方案;当监听到***发生异常时,通过切换指令,触发修改对应的依赖关系,以控制***切换至对应的方案,实现了通过动态修改依赖关系即可实现对***方案的切换的目的,无需通过修改代码的形式去修改控制开关,从而简化了***方案切换流程,提高了***方案切换效率;同时避免了修改代码而导致代码浸入和耦合性较高的缺陷。
关于***方案切换装置的具体限定可以参见上文中对于***方案切换方法的限定,在此不再赘述。上述***方案切换装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储不同对象对应的依赖关系。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种***方案切换方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取监听到的***返回的异常信息,根据异常信息触发对应的切换指令,切换指令携带第一目标对象的目标依赖关系;
根据切换指令,在预设对象库中查找第一目标对象的依赖关系;
根据目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与类对应的目标实现类;
根据目标实现类,控制***从与初始实现类对应的方案切换至与目标实现类对应的方案。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:识别异常信息,确定***的异常等级和第一目标对象;根据异常等级与切换等级的对应关系,确定***的切换等级;获取与切换等级对应的依赖关系,作为第一目标对象的目标依赖关系;根据目标依赖关系,触发对应的切换指令。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在预设对象库中筛选出携带有标记信息的对象;从筛选出的对象中查找第一目标对象;获取与第一目标对象对应的依赖关系。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:提取查找到的依赖关系中的类对应的初始实现类;获取目标依赖关系中的类对应的目标实现类;通过预设方式将依赖关系中的类对应的初始实现类替换为目标实现类,得到与类对应的目标实现类。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在根据目标实现类,控制***从与初始实现类对应的方案切换至与目标实现类对应的方案之前,将类与目标实现类的对应关系,作为第一目标对象的已修改依赖关系;将第一目标对象的已修改依赖关系导入到预设信息配置表中,以更新信息配置表;查询信息配置表,确定目标实现类对应的方案以及切换方式。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据切换方式,控制***从与初始实现类对应的方案切换至与目标实现类对应的方案。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取第一目标对象的类型;在预设对象库中查找与第一目标对象的类型对应的对象,作为第二目标对象;获取与第二目标对象对应的依赖关系;将依赖关系中的类对应的初始实现类替换为目标实现类。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:读取信息配置表中各个对象的依赖关系;分别根据读取到的各个对象的依赖关系,对预设对象库中对应的对象的依赖关系进行更新;对***返回的异常信息进行监听。
上述各个实施例,计算机设备通过处理器上运行的计算机程序,实现了通过动态修改依赖关系即可实现对***方案的切换的目的,无需通过修改代码的形式去修改控制开关,从而简化了***方案切换流程,提高了***方案切换效率;同时避免了修改代码而导致代码浸入和耦合性较高的缺陷。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取监听到的***返回的异常信息,根据异常信息触发对应的切换指令,切换指令携带第一目标对象的目标依赖关系;
根据切换指令,在预设对象库中查找第一目标对象的依赖关系;
根据目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与类对应的目标实现类;
根据目标实现类,控制***从与初始实现类对应的方案切换至与目标实现类对应的方案。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:识别异常信息,确定***的异常等级和第一目标对象;根据异常等级与切换等级的对应关系,确定***的切换等级;获取与切换等级对应的依赖关系,作为第一目标对象的目标依赖关系;根据目标依赖关系,触发对应的切换指令。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在预设对象库中筛选出携带有标记信息的对象;从筛选出的对象中查找第一目标对象;获取与第一目标对象对应的依赖关系。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:提取查找到的依赖关系中的类对应的初始实现类;获取目标依赖关系中的类对应的目标实现类;通过预设方式将依赖关系中的类对应的初始实现类替换为目标实现类,得到与类对应的目标实现类。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在根据目标实现类,控制***从与初始实现类对应的方案切换至与目标实现类对应的方案之前,将类与目标实现类的对应关系,作为第一目标对象的已修改依赖关系;将第一目标对象的已修改依赖关系导入到预设信息配置表中,以更新信息配置表;查询信息配置表,确定目标实现类对应的方案以及切换方式。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据切换方式,控制***从与初始实现类对应的方案切换至与目标实现类对应的方案。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取第一目标对象的类型;在预设对象库中查找与第一目标对象的类型对应的对象,作为第二目标对象;获取与第二目标对象对应的依赖关系;将依赖关系中的类对应的初始实现类替换为目标实现类。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:读取信息配置表中各个对象的依赖关系;分别根据读取到的各个对象的依赖关系,对预设对象库中对应的对象的依赖关系进行更新;对***返回的异常信息进行监听。
上述各个实施例,计算机可读存储介质通过其存储的计算机程序,实现了通过动态修改依赖关系即可实现对***方案的切换的目的,无需通过修改代码的形式去修改控制开关,从而简化了***方案切换流程,提高了***方案切换效率;同时避免了修改代码而导致代码浸入和耦合性较高的缺陷。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种***方案切换方法,所述方法包括:
获取监听到的***返回的异常信息,根据所述异常信息触发对应的切换指令,所述切换指令携带第一目标对象的目标依赖关系;
根据所述切换指令,在预设对象库中查找所述第一目标对象的依赖关系;
根据所述目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与所述类对应的目标实现类;
根据所述目标实现类,控制所述***从与所述初始实现类对应的方案切换至与所述目标实现类对应的方案。
2.根据权利要求1所述的方法,其特征在于,所述根据所述异常信息触发对应的切换指令,包括:
识别所述异常信息,确定所述***的异常等级和第一目标对象;
根据异常等级与切换等级的对应关系,确定所述***的切换等级;
获取与所述切换等级对应的依赖关系,作为所述第一目标对象的目标依赖关系;
根据所述目标依赖关系,触发对应的切换指令。
3.根据权利要求1所述的方法,其特征在于,所述根据所述切换指令,在预设对象库中查找所述第一目标对象的依赖关系,包括:
在预设对象库中筛选出携带有标记信息的对象;
从筛选出的对象中查找所述第一目标对象;
获取与所述第一目标对象对应的依赖关系。
4.根据权利要求1所述的方法,其特征在于,所述根据所述目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与所述类对应的目标实现类,包括:
提取查找到的依赖关系中的类对应的初始实现类;
获取所述目标依赖关系中的类对应的目标实现类;
通过预设方式将所述依赖关系中的类对应的初始实现类替换为所述目标实现类,得到与所述类对应的目标实现类。
5.根据权利要求4所述的方法,其特征在于,在根据所述目标实现类,控制所述***从与所述初始实现类对应的方案切换至与所述目标实现类对应的方案之前,还包括:
将所述类与所述目标实现类的对应关系,作为所述第一目标对象的已修改依赖关系;
将所述第一目标对象的已修改依赖关系导入到预设信息配置表中,以更新所述信息配置表;
查询所述信息配置表,确定所述目标实现类对应的方案以及切换方式;
所述根据所述目标实现类,控制所述***从与所述初始实现类对应的方案切换至与所述目标实现类对应的方案,包括:
根据所述切换方式,控制所述***从与所述初始实现类对应的方案切换至与所述目标实现类对应的方案。
6.根据权利要求1至5任意一项所述的方法,其特征在于,在根据所述目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与所述类对应的目标实现类之后,在根据所述目标实现类,控制所述***从与所述初始实现类对应的方案切换至与所述目标实现类对应的方案之前,还包括:
获取所述第一目标对象的类型;
在预设对象库中查找与所述第一目标对象的类型对应的对象,作为第二目标对象;
获取与所述第二目标对象对应的依赖关系;
将所述依赖关系中的类对应的初始实现类替换为所述目标实现类。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
读取信息配置表中各个对象的依赖关系;
分别根据读取到的各个对象的依赖关系,对预设对象库中对应的对象的依赖关系进行更新;
对***返回的异常信息进行监听。
8.一种***方案切换装置,其特征在于,所述装置包括:
指令触发模块,用于获取监听到的***返回的异常信息,根据所述异常信息触发对应的切换指令,所述切换指令携带第一目标对象的目标依赖关系;
关系查找模块,用于根据所述切换指令,在预设对象库中查找所述第一目标对象的依赖关系;
关系修改模块,用于根据所述目标依赖关系,对与查找到的依赖关系中的类对应的初始实现类进行修改,得到与所述类对应的目标实现类;
方案切换模块,用于根据所述目标实现类,控制所述***从与所述初始实现类对应的方案切换至与所述目标实现类对应的方案。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN201811002915.0A 2018-08-30 2018-08-30 ***方案切换方法、装置、计算机设备和存储介质 Active CN109240816B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811002915.0A CN109240816B (zh) 2018-08-30 2018-08-30 ***方案切换方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811002915.0A CN109240816B (zh) 2018-08-30 2018-08-30 ***方案切换方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN109240816A true CN109240816A (zh) 2019-01-18
CN109240816B CN109240816B (zh) 2020-11-10

Family

ID=65069925

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811002915.0A Active CN109240816B (zh) 2018-08-30 2018-08-30 ***方案切换方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN109240816B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110188058A (zh) * 2019-06-04 2019-08-30 无锡八英里电子科技有限公司 终端无线通讯模组切换方法、装置、异常诊断方法、装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101426306A (zh) * 2008-10-24 2009-05-06 ***通信集团山东有限公司 一种容灾切换方法、***及装置
CN102025551A (zh) * 2010-12-23 2011-04-20 中兴通讯股份有限公司 基于接入网关的主备用设备切换方法和装置
CN103188098A (zh) * 2011-12-30 2013-07-03 ***通信集团河南有限公司 一种容灾切换方法、***以及装置
CN103699460A (zh) * 2013-09-22 2014-04-02 南京国电南自电网自动化有限公司 站域保护功能迁移方法
CN104216708A (zh) * 2014-08-20 2014-12-17 北京奇艺世纪科技有限公司 一种数据监控的方法和装置
CN105653401A (zh) * 2015-12-28 2016-06-08 中国民生银行股份有限公司 应用***灾备、运维、监控和应急启停调度方法及装置
CN106201811A (zh) * 2016-07-06 2016-12-07 青岛海信宽带多媒体技术有限公司 应用程序的故障恢复方法和终端
US9600202B2 (en) * 2011-07-28 2017-03-21 Huawei Technologies Co., Ltd. Method and device for implementing memory migration
CN106681760A (zh) * 2016-12-12 2017-05-17 国网北京市电力公司 基于客户工程项目管理***的事务处理方法和装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101426306A (zh) * 2008-10-24 2009-05-06 ***通信集团山东有限公司 一种容灾切换方法、***及装置
CN102025551A (zh) * 2010-12-23 2011-04-20 中兴通讯股份有限公司 基于接入网关的主备用设备切换方法和装置
US9600202B2 (en) * 2011-07-28 2017-03-21 Huawei Technologies Co., Ltd. Method and device for implementing memory migration
CN103188098A (zh) * 2011-12-30 2013-07-03 ***通信集团河南有限公司 一种容灾切换方法、***以及装置
CN103699460A (zh) * 2013-09-22 2014-04-02 南京国电南自电网自动化有限公司 站域保护功能迁移方法
CN104216708A (zh) * 2014-08-20 2014-12-17 北京奇艺世纪科技有限公司 一种数据监控的方法和装置
CN105653401A (zh) * 2015-12-28 2016-06-08 中国民生银行股份有限公司 应用***灾备、运维、监控和应急启停调度方法及装置
CN106201811A (zh) * 2016-07-06 2016-12-07 青岛海信宽带多媒体技术有限公司 应用程序的故障恢复方法和终端
CN106681760A (zh) * 2016-12-12 2017-05-17 国网北京市电力公司 基于客户工程项目管理***的事务处理方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110188058A (zh) * 2019-06-04 2019-08-30 无锡八英里电子科技有限公司 终端无线通讯模组切换方法、装置、异常诊断方法、装置
CN110188058B (zh) * 2019-06-04 2023-01-24 无锡八英里电子科技有限公司 终端无线通讯模组切换方法、装置、异常诊断方法、装置

Also Published As

Publication number Publication date
CN109240816B (zh) 2020-11-10

Similar Documents

Publication Publication Date Title
CN109542961B (zh) 数据存储方法、装置、计算机设备和存储介质
CN106982236B (zh) 一种信息处理方法、装置和***
CN108932295B (zh) 主数据库切换控制方法、装置、计算机设备和存储介质
CN109446063A (zh) 接口测试方法、装置、计算机设备和存储介质
CN109446173A (zh) 日志数据处理方法、装置、计算机设备和存储介质
CN104516966A (zh) 一种数据库集群的高可用解决方法和装置
CN108897658B (zh) 主数据库监控方法、装置、计算机设备和存储介质
CN110489421A (zh) 数据存储方法、装置、计算机可读存储介质和计算机设备
CN111277612B (zh) 一种网络报文处理策略生成方法、***及介质
CN108900572B (zh) 主数据库域名切换控制方法、计算机设备和存储介质
CN109766121A (zh) 环境配置文件生成方法、装置、计算机设备和存储介质
CN108536492A (zh) 一种直播间属性信息获取方法、装置、设备及存储介质
CN111147605B (zh) 服务注册方法、装置和设备
CN109240816A (zh) ***方案切换方法、装置、计算机设备和存储介质
CN113489149B (zh) 基于实时状态感知的电网监控***业务主节点选取方法
CN112511341B (zh) 一种网络自动化故障定位方法、终端及存储介质
CN108681438A (zh) 信号窗口开启方法和***
CN116016387B (zh) 访问控制列表生效控制方法、装置、设备和存储介质
CN113595938B (zh) 一种虚拟网络性能加速方法、装置、设备及存储介质
CN104348737A (zh) 一种组播报文的传输方法及交换机
CN111327543A (zh) 报文转发方法及装置、存储介质、电子装置
CN109408532A (zh) 数据获取方法、装置、计算机设备和存储介质
CN114064717A (zh) 数据处理方法、装置、设备及存储介质
CN113609245A (zh) 一种索引的分片扩容方法及***
CN110647526B (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
TR01 Transfer of patent right

Effective date of registration: 20231017

Address after: Room 1423, No. 1256 and 1258, Wanrong Road, Jing'an District, Shanghai 200040

Patentee after: Tianyi Digital Life Technology Co.,Ltd.

Address before: 1 / F and 2 / F, East Garden, Huatian International Plaza, 211 Longkou Middle Road, Tianhe District, Guangzhou, Guangdong 510630

Patentee before: Century Dragon Information Network Co.,Ltd.

TR01 Transfer of patent right