CN116737269A - 一种数据源动态操作方法、装置、***及介质 - Google Patents
一种数据源动态操作方法、装置、***及介质 Download PDFInfo
- Publication number
- CN116737269A CN116737269A CN202310712148.7A CN202310712148A CN116737269A CN 116737269 A CN116737269 A CN 116737269A CN 202310712148 A CN202310712148 A CN 202310712148A CN 116737269 A CN116737269 A CN 116737269A
- Authority
- CN
- China
- Prior art keywords
- data source
- source configuration
- database connection
- dynamic
- configuration information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000012986 modification Methods 0.000 claims abstract description 21
- 230000004048 modification Effects 0.000 claims abstract description 21
- 238000012544 monitoring process Methods 0.000 claims abstract description 19
- 230000015654 memory Effects 0.000 claims description 24
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据源动态操作方法、装置、***及介质,方法包括:对应用程序的数据源配置进行监听;当监听到数据源配置的修改操作时,从应用程序的配置服务器中获取修改后的数据源配置信息,并存储在预设容器中;确认当前的数据库连接中是否存在数据读写,当不存在数据读写时中断当前的数据库连接;通过预先创建的动态数据源配置类,从预设容器中获取修改后的数据源配置信息,并根据修改后的数据源配置信息重新初始化数据库连接。通过在不存在数据读写时从预设容器中获取修改后的数据源配置信息,重新初始化数据库连接,在不中断程序运行的情况下实现数据源的修改操作,实现高效且稳定的数据源动态操作,确保程序运行的稳定性。
Description
技术领域
本发明涉及金融科技技术领域,尤其涉及一种数据源动态操作方法、装置、***及介质。
背景技术
随着金融领域不同业务场景的高速发展,越来越多的金融类软件项目上线,从而为更多的银行业务场景提供方便快捷的场景服务。
由于金融行业的业的特殊性,在金融软件研发过程中,对数据操作的稳定性和数据问题的修复及时性要求非常高,而数据源作为的数据的载体是程序中非常重要的一个部分。在有些场景下,例如同一个程序涉及不同数据源的数据调用,或者主数据源发生错误时需切换至备用数据源等,需要对数据源进行修改操作。通常情况下,对数据源的修改操作需要修改不同程序代码配置后重新打包发布,这种方式会增加程序打包发布工作量,同时也增加了需求响应时间,影响数据源的切换时效和业务的稳定性。
发明内容
鉴于上述现有技术的不足,本发明的目的在于提供可应用于金融科技或其它相关领域的一种数据源动态操作方法、装置、***及介质,旨在实现高效且稳定的数据源动态操作,确保程序运行的稳定性。
本发明的技术方案如下:
一种数据源动态操作方法,包括:
对应用程序的数据源配置进行监听;
当监听到数据源配置的修改操作时,从所述应用程序的配置服务器中获取修改后的数据源配置信息,并存储在预设容器中;
确认当前的数据库连接中是否存在数据读写,当不存在数据读写时中断当前的数据库连接;
通过预先创建的动态数据源配置类,从所述预设容器中获取修改后的数据源配置信息,并根据修改后的数据源配置信息重新初始化数据库连接。
在一个实施例中,所述对应用程序的数据源配置进行监听,具体包括:
预先基于***类创建数据源配置***,通过所述数据源配置***对应用程序的数据源配置进行监听。
在一个实施例中,所述确认当前的数据库连接中是否存在数据读写,当不存在数据读写时中断当前的数据库连接,包括:
确认当前应用程序中是否存在数据库连接;
若存在数据库连接,确认当前的数据库连接中的executor线程池是否为空;
若executor线程池为空,则中断当前的数据库连接。
在一个实施例中,所述若存在数据库连接,确认当前的数据库连接中的executor线程池是否为空之后,所述方法还包括:
若executor线程池不为空,则等待预设时间后重新确认当前的数据库连接中的executor线程池是否为空。
在一个实施例中,所述通过预先创建的动态数据源配置类,从所述预设容器中获取修改后的数据源配置信息,并根据修改后的数据源配置信息重新初始化数据库连接之前,所述方法还包括:
预先创建动态数据源配置类,并对所述动态数据源配置类中的数据源查找方法进行改写,以使得执行所述数据源查找方法时从所述预设容器中查找数据源配置。
在一个实施例中,所述确认当前的数据库连接中是否存在数据读写,当不存在数据读写时中断当前的数据库连接之后,所述方法还包括:
保存当前的数据库连接中用于获取数据源配置的键。
在一个实施例中,所述通过预先创建的动态数据源配置类,从所述预设容器中获取修改后的数据源配置信息,并根据修改后的数据源配置信息重新初始化数据库连接,包括:
调用所述动态数据源配置类中的数据源查找方法,根据所述数据源配置的键从所述预设容器中查找修改后的数据源配置;
根据修改后的数据源配置与相应的数据库重新初始化连接。
一种数据源动态操作装置,包括:
监听模块,用于对应用程序的数据源配置进行监听;
动态获取模块,用于当监听到数据源配置的修改操作时,从所述应用程序的配置服务器中获取修改后的数据源配置信息,并存储在预设容器中;
连接确认模块,用于确认当前的数据库连接中是否存在数据读写,当不存在数据读写时中断当前的数据库连接;
查找连接模块,用于通过预先创建的动态数据源配置类,从所述预设容器中获取修改后的数据源配置信息,并根据修改后的数据源配置信息重新初始化数据库连接。
一种数据源动态操作***,所述***包括至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述数据源动态操作方法。
一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的数据源动态操作方法。
有益效果:本发明公开了一种数据源动态操作方法、装置、***及介质,相比于现有技术,本发明实施例通过在不存在数据读写时从预设容器中获取修改后的数据源配置信息,重新初始化数据库连接,在不中断程序运行的情况下实现数据源的修改操作,实现高效且稳定的数据源动态操作,确保程序运行的稳定性。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为本发明实施例提供的数据源动态操作方法的一个流程图;
图2为本发明实施例提供的数据源动态操作方法中步骤S300的流程图;
图3为本发明实施例提供的数据源动态操作方法中步骤S300的另一个流程图;
图4为本发明实施例提供的数据源动态操作方法中步骤S400的流程图;
图5为本发明实施例提供的数据源动态操作装置的功能模块示意图;
图6为本发明实施例提供的数据源动态操作***的硬件结构示意图。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。以下结合附图对本发明实施例进行介绍。
随着金融领域不同业务场景的高速发展,越来越多的金融类软件项目上线,从而为更多的银行业务场景提供方便快捷的场景服务。
由于金融行业的业的特殊性,在金融软件研发过程中,对数据操作的稳定性和数据问题的修复及时性要求非常高,而数据源作为的数据的载体是程序中非常重要的一个部分。在有些场景下,例如同一个程序涉及不同数据源的数据调用,或者主数据源发生错误时需切换至备用数据源等,需要对数据源进行修改操作。通常情况下,对数据源的修改操作需要修改不同程序代码配置后重新打包发布,这种方式会增加程序打包发布工作量,同时也增加了需求响应时间,影响数据源的切换时效和业务的稳定性。
为了解决上述问题,本发明提出一种数据源动态操作方法,请参阅图1,图1为本发明提供的数据源动态操作方法一个实施例的流程图。本实施例提供的数据源动态操作方法应用于包括终端设备、网络和服务器构成的***,其中网络为用于在终端设备和服务器之间提供通信链路的介质,其可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等;终端设备上的操作***可以包括手持设备操作***(iPhone operating system,iOS***)、安卓***或其他操作***,终端设备通过网络连接到服务器以实现交互,从而进行接收或发送数据等操作,具体可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、便携式计算机和台式服务器等等。如图1所示,该方法具体包括如下步骤:
S100、对应用程序的数据源配置进行监听。
本实施例中,通过在应用程序的项目代码中内置监听功能,在应用程序运行时,对其数据源配置进行监听。
具体的,可从项目代码管理仓库通过git clone获取项目源码,并且在项目源码中预先基于***类(Listener)通过addChangeListener(ConfigChangeListener)创建数据源配置***。该数据源配置***用于对应用程序的数据源配置进行监听,以实时监测是否存在对数据源配置的修改操作。
S200、当监听到数据源配置的修改操作时,从所述应用程序的配置服务器中获取修改后的数据源配置信息,并存储在预设容器中。
本实施例中,预先在项目源码中创建预设容器ConcureentHashMap,ConcurrentHashMap是一个存储key/value对的容器,并且是线程安全的。该预设容器用来存放从应用程序配置服务器上同步过来的数据源配置信息。即如果监听到对数据源配置的修改操作,包括增加操作、删除操作和切换操作等,则从应用程序的配置服务器中获取最新的修改后的数据源配置信息,将其同步至ConcureentHashMap中,以供后续调用。本实施例中使用ConcureentHashMap而不使用HashMap的主要是因为增加数据源操作和事务切面获取数据源操作之间可能会有并发执行的情况,为了线程安全考虑,则通过高并发的ConcureentHashMap来存储数据源配置信息,确保数据源动态操作的可靠性。
S300、确认当前的数据库连接中是否存在数据读写,当不存在数据读写时中断当前的数据库连接。
本实施例中,在监听到存在数据源配置的修改操作后,则进一步确认当前的数据库连接中是否存在数据读写,为了不影响当前数据库连接的读写操作,避免应用程序运行时的数据读写操作,需在不存在数据读写时中断当前的数据库连接,确保应用程序执行的数据准确性。
在一个实施例中,如图2所示,步骤S300包括:
S301、确认当前应用程序中是否存在数据库连接;
S302、若存在数据库连接,确认当前的数据库连接中的executor线程池是否为空;
S303、若executor线程池为空,则中断当前的数据库连接。
本实施例中,在***获取到数据源配置数据发生变更时,通过drivermanager获取当前程序中是否存在数据库连接,如果存在数据库连接,则获取当前数据数据库连接中的executor线程池,确认线程池是否为空,如果线程池为空,则表明当前数据库连接中不存在数据读写,可以通过connect.close()中断当前的数据库连接,以进行后续的数据源配置修改后重新与相应的数据库进行连接,实现数据库的切换。
在一个实施例中,如图3所示,步骤S302之后,方法还包括:
S304、若executor线程池不为空,则等待预设时间后重新确认当前的数据库连接中的executor线程池是否为空。
本实施例中,如果executor线程池不为空,则表明当前数据库连接中存在数据读写,不能断开当前数据库连接,等待预设时间例如1000毫秒或其他时间后,继续获取线程池数据,重新确认当前的数据库连接中的executor线程池是否为空,直到等待到线程池为空时才中断当前的数据库连接,确保数据库操作的可靠性。
S400、通过预先创建的动态数据源配置类,从所述预设容器中获取修改后的数据源配置信息,并根据修改后的数据源配置信息重新初始化数据库连接。
本实施例中,中断了当前的数据库连接后,则通过预先创建的动态数据源配置类中的方法,重新从预设容器ConcureentHashMap中获取之前同步的修后的数据源配置信息,基于修改后的数据源配置信息重新初始化数据库连接。
在一个实施例中,步骤S400之前,方法还包括:
预先创建动态数据源配置类,并对所述动态数据源配置类中的数据源查找方法进行改写,以使得执行所述数据源查找方法时从所述预设容器中查找数据源配置。
本实施例中,基于数据源路由(AbstractRoutingDataSource)创建动态获取数据源配置类(dynanicdatascource),在动态数据源配置类中通过重写数据源获取方法determineTargetDataSource中的数据源查找(datasourcelookup)方法,将该方法从原始的在内存数据源配置文件中查找,修改成从之前定义的预设容器ConcureentHashMap对象中根据数据源的键(key)查找对应的数据源配置。从而实现在不中断程序运行的情况下重新获取修改后的数据源配置,实现数据源配置的快速可靠修改。
在一个实施例中,步骤S300之后,方法还包括:
保存当前的数据库连接中用于获取数据源配置的键。
本实施例中,如果获取到executor线程池、确认线程池为空,则中断了当前的数据库连接时还保存当前的数据库连接中获取数据源配置的key,以作为后续查找数据源配置的准确依据。
在一个实施例中,如图4所示,步骤S400包括:
S401、调用所述动态数据源配置类中的数据源查找方法,根据所述数据源配置的键从所述预设容器中查找修改后的数据源配置;
S402、根据修改后的数据源配置与相应的数据库重新初始化连接。
本实施例中,通过已经重写过的动态获取数据源配置的dynanicdatascource类中的数据源查找方法重新初始化数据库连接,具体是根据已经被断开的数据库连接时保存的key,重新从预设容器ConcureentHashMap获取数据库连接配置,根据修改后的数据源配置重新初始化数据库连接,从而在程序运行的情况下实现数据源动态操作,确保业务稳定性。
本发明另一实施例提供一种数据源动态操作装置,如图5所示,装置1包括:
监听模块11,用于对应用程序的数据源配置进行监听;
动态获取模块12,用于当监听到数据源配置的修改操作时,从所述应用程序的配置服务器中获取修改后的数据源配置信息,并存储在预设容器中;
连接确认模块13,用于确认当前的数据库连接中是否存在数据读写,当不存在数据读写时中断当前的数据库连接;
查找连接模块14,用于通过预先创建的动态数据源配置类,从所述预设容器中获取修改后的数据源配置信息,并根据修改后的数据源配置信息重新初始化数据库连接。
本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述数据源动态操作的执行过程,各模块的具体实施方式请参考上述对应的方法实施例,此处不再赘述。
在一个实施例中,所述监听模块11,具体用于:
预先基于***类创建数据源配置***,通过所述数据源配置***对应用程序的数据源配置进行监听。
在一个实施例中,所述连接确认模块13,包括:
连接确认单元,用于确认当前应用程序中是否存在数据库连接;
线程确认单元,用于若存在数据库连接,确认当前的数据库连接中的executor线程池是否为空;
中断单元,用于若executor线程池为空,则中断当前的数据库连接。
在一个实施例中,所述连接确认模块13,还包括:
等待单元,用于若executor线程池不为空,则等待预设时间后重新确认当前的数据库连接中的executor线程池是否为空。
在一个实施例中,所述装置1,还包括:
创建改写模块,用于预先创建动态数据源配置类,并对所述动态数据源配置类中的数据源查找方法进行改写,以使得执行所述数据源查找方法时从所述预设容器中查找数据源配置。
在一个实施例中,所述装置1,还包括:
保存模块,用于保存当前的数据库连接中用于获取数据源配置的键。
在一个实施例中,所述查找连接模块14,包括:
调用查找单元,用于调用所述动态数据源配置类中的数据源查找方法,根据所述数据源配置的键从所述预设容器中查找修改后的数据源配置;
连接单元,用于根据修改后的数据源配置与相应的数据库重新初始化连接。
本发明另一实施例提供一种数据源动态操作***,如图6所示,***10包括:
一个或多个处理器110以及存储器120,图6中以一个处理器110为例进行介绍,处理器110和存储器120可以通过总线或者其他方式连接,图6中以通过总线连接为例。
处理器110用于完成***10的各种控制逻辑,其可以为通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、单片机、ARM(Acorn RISCMachine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,处理器110还可以是任何传统处理器、微处理器或状态机。处理器110也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP和/或任何其它这种配置。
存储器120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的数据源动态操作方法对应的程序指令。处理器110通过运行存储在存储器120中的非易失性软件程序、指令以及单元,从而执行***10的各种功能应用以及数据处理,即实现上述方法实施例中的数据源动态操作方法。
存储器120可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据***10使用所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器120可选包括相对于处理器110远程设置的存储器,这些远程存储器可以通过网络连接至***10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个单元存储在存储器120中,当被一个或者多个处理器110执行时,实现以下步骤:
对应用程序的数据源配置进行监听;
当监听到数据源配置的修改操作时,从所述应用程序的配置服务器中获取修改后的数据源配置信息,并存储在预设容器中;
确认当前的数据库连接中是否存在数据读写,当不存在数据读写时中断当前的数据库连接;
通过预先创建的动态数据源配置类,从所述预设容器中获取修改后的数据源配置信息,并根据修改后的数据源配置信息重新初始化数据库连接。
在一个实施例中,所述对应用程序的数据源配置进行监听,具体包括:
预先基于***类创建数据源配置***,通过所述数据源配置***对应用程序的数据源配置进行监听。
在一个实施例中,所述确认当前的数据库连接中是否存在数据读写,当不存在数据读写时中断当前的数据库连接,包括:
确认当前应用程序中是否存在数据库连接;
若存在数据库连接,确认当前的数据库连接中的executor线程池是否为空;
若executor线程池为空,则中断当前的数据库连接。
在一个实施例中,所述若存在数据库连接,确认当前的数据库连接中的executor线程池是否为空之后,所述方法还包括:
若executor线程池不为空,则等待预设时间后重新确认当前的数据库连接中的executor线程池是否为空。
在一个实施例中,所述通过预先创建的动态数据源配置类,从所述预设容器中获取修改后的数据源配置信息,并根据修改后的数据源配置信息重新初始化数据库连接之前,所述方法还包括:
预先创建动态数据源配置类,并对所述动态数据源配置类中的数据源查找方法进行改写,以使得执行所述数据源查找方法时从所述预设容器中查找数据源配置。
在一个实施例中,所述确认当前的数据库连接中是否存在数据读写,当不存在数据读写时中断当前的数据库连接之后,所述方法还包括:
保存当前的数据库连接中用于获取数据源配置的键。
在一个实施例中,所述通过预先创建的动态数据源配置类,从所述预设容器中获取修改后的数据源配置信息,并根据修改后的数据源配置信息重新初始化数据库连接,包括:
调用所述动态数据源配置类中的数据源查找方法,根据所述数据源配置的键从所述预设容器中查找修改后的数据源配置;
根据修改后的数据源配置与相应的数据库重新初始化连接。
本发明实施例提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图1中的方法步骤S100至步骤S400。
作为示例,非易失性存储介质能够包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦ROM(EEPROM)或闪速存储器。易失性存储器能够包括作为外部高速缓存存储器的随机存取存储器(RAM)。通过说明而非限制,RAM可以以诸如同步RAM(SRAM)、动态RAM、(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、Synchlink DRAM(SLDRAM)以及直接Rambus(兰巴斯)RAM(DRRAM)之类的许多形式得到。本文中所描述的操作环境的所公开的存储器组件或存储器旨在包括这些和/或任何其他适合类型的存储器中的一个或多个。
综上,本发明公开的一种数据源动态操作方法、装置、***及介质中,方法通过对应用程序的数据源配置进行监听;当监听到数据源配置的修改操作时,从应用程序的配置服务器中获取修改后的数据源配置信息,并存储在预设容器中;确认当前的数据库连接中是否存在数据读写,当不存在数据读写时中断当前的数据库连接;通过预先创建的动态数据源配置类,从预设容器中获取修改后的数据源配置信息,并根据修改后的数据源配置信息重新初始化数据库连接。通过在不存在数据读写时从预设容器中获取修改后的数据源配置信息,重新初始化数据库连接,在不中断程序运行的情况下实现数据源的修改操作,实现高效且稳定的数据源动态操作,确保程序运行的稳定性。
当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的计算机程序可存储于一非易失性计算机可读取的存储介质中,该计算机程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、软盘、闪存、光存储器等。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (10)
1.一种数据源动态操作方法,其特征在于,包括:
对应用程序的数据源配置进行监听;
当监听到数据源配置的修改操作时,从所述应用程序的配置服务器中获取修改后的数据源配置信息,并存储在预设容器中;
确认当前的数据库连接中是否存在数据读写,当不存在数据读写时中断当前的数据库连接;
通过预先创建的动态数据源配置类,从所述预设容器中获取修改后的数据源配置信息,并根据修改后的数据源配置信息重新初始化数据库连接。
2.根据权利要求1所述的数据源动态操作方法,其特征在于,所述对应用程序的数据源配置进行监听,具体包括:
预先基于***类创建数据源配置***,通过所述数据源配置***对应用程序的数据源配置进行监听。
3.根据权利要求1所述的数据源动态操作方法,其特征在于,所述确认当前的数据库连接中是否存在数据读写,当不存在数据读写时中断当前的数据库连接,包括:
确认当前应用程序中是否存在数据库连接;
若存在数据库连接,确认当前的数据库连接中的executor线程池是否为空;
若executor线程池为空,则中断当前的数据库连接。
4.根据权利要求3所述的数据源动态操作方法,其特征在于,所述若存在数据库连接,确认当前的数据库连接中的executor线程池是否为空之后,所述方法还包括:
若executor线程池不为空,则等待预设时间后重新确认当前的数据库连接中的executor线程池是否为空。
5.根据权利要求1所述的数据源动态操作方法,其特征在于,所述通过预先创建的动态数据源配置类,从所述预设容器中获取修改后的数据源配置信息,并根据修改后的数据源配置信息重新初始化数据库连接之前,所述方法还包括:
预先创建动态数据源配置类,并对所述动态数据源配置类中的数据源查找方法进行改写,以使得执行所述数据源查找方法时从所述预设容器中查找数据源配置。
6.根据权利要求5所述的数据源动态操作方法,其特征在于,所述确认当前的数据库连接中是否存在数据读写,当不存在数据读写时中断当前的数据库连接之后,所述方法还包括:
保存当前的数据库连接中用于获取数据源配置的键。
7.根据权利要求6所述的数据源动态操作方法,其特征在于,所述通过预先创建的动态数据源配置类,从所述预设容器中获取修改后的数据源配置信息,并根据修改后的数据源配置信息重新初始化数据库连接,包括:
调用所述动态数据源配置类中的数据源查找方法,根据所述数据源配置的键从所述预设容器中查找修改后的数据源配置;
根据修改后的数据源配置与相应的数据库重新初始化连接。
8.一种数据源动态操作装置,其特征在于,包括:
监听模块,用于对应用程序的数据源配置进行监听;
动态获取模块,用于当监听到数据源配置的修改操作时,从所述应用程序的配置服务器中获取修改后的数据源配置信息,并存储在预设容器中;
连接确认模块,用于确认当前的数据库连接中是否存在数据读写,当不存在数据读写时中断当前的数据库连接;
查找连接模块,用于通过预先创建的动态数据源配置类,从所述预设容器中获取修改后的数据源配置信息,并根据修改后的数据源配置信息重新初始化数据库连接。
9.一种数据源动态操作***,其特征在于,所述***包括至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7任一项所述的数据源动态操作方法。
10.一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行权利要求1-7任一项所述的数据源动态操作方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310712148.7A CN116737269A (zh) | 2023-06-15 | 2023-06-15 | 一种数据源动态操作方法、装置、***及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310712148.7A CN116737269A (zh) | 2023-06-15 | 2023-06-15 | 一种数据源动态操作方法、装置、***及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116737269A true CN116737269A (zh) | 2023-09-12 |
Family
ID=87904108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310712148.7A Pending CN116737269A (zh) | 2023-06-15 | 2023-06-15 | 一种数据源动态操作方法、装置、***及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116737269A (zh) |
-
2023
- 2023-06-15 CN CN202310712148.7A patent/CN116737269A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110603554B (zh) | 经由机器可读码进行离线数据转移的方法和*** | |
US11055085B2 (en) | Method, apparatus, and system for hot-deploying application | |
US9262237B2 (en) | Automating software availability management based on API versioning | |
US20200412644A1 (en) | Content based routing method and apparatus | |
WO2018113601A1 (zh) | 一种业务处理方法及装置 | |
CN110968477B (zh) | 一种获取备用bmc版本信息的方法、设备及介质 | |
US20190034195A1 (en) | Systems and methods for providing patchable rom firmware | |
CN110727581B (zh) | 崩溃定位方法与电子设备 | |
CN113220229B (zh) | 一种用于分布式控制***的在线式i/o无扰组态方法 | |
WO2023173718A1 (zh) | 一种通信链路更新方法、装置及相关设备 | |
CN113360213A (zh) | 应用程序版本切换方法、装置、设备及*** | |
CN116737269A (zh) | 一种数据源动态操作方法、装置、***及介质 | |
CN116661932A (zh) | 基于切面的防止接口重复提交的方法、装置、***及介质 | |
CN116628085A (zh) | 数据库的同步处理方法、装置、电子设备及存储介质 | |
CN110852752A (zh) | 充值订单撤销异常处理方法、装置、设备和存储介质 | |
CN116382675A (zh) | 一种接口配置与调用方法、装置、***及介质 | |
US10462266B2 (en) | Data communication method and apparatus | |
CN115629940A (zh) | 一种微服务全链路追踪方法、装置、***及介质 | |
WO2023045755A1 (zh) | 一种数据存储方法、装置、终端设备及存储介质 | |
CN112306723B (zh) | 一种应用于小程序的运行信息获取方法和装置 | |
CN112261072A (zh) | 一种服务调用方法、装置、设备和存储介质 | |
CN111026584A (zh) | 一种解决键值数据库文件损坏的装置、方法和设备 | |
CN115484316B (zh) | 一种共享文件的方法和装置 | |
CN112333264B (zh) | 调试终端的管理方法及装置、电子设备及存储介质 | |
US20240143849A1 (en) | Chip monitoring method and apparatus |
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 |