System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() SQLAlchemy增加关系型数据库的异步IO并发处理方法技术_技高网

SQLAlchemy增加关系型数据库的异步IO并发处理方法技术

技术编号:44993287 阅读:1 留言:0更新日期:2025-04-15 17:08
本发明专利技术涉及一种SQLAlchemy增加关系型数据库的异步IO并发处理方法,包括:封装关系型数据库的调用方法,获得封装模块;配置部署环境;基于所述部署环境,根据所述封装模块创建运行实例;通过所述运行实例对待执行SQL进行执行,获得执行结果。本发明专利技术在保留使用SQLAlchemy原生功能途径的基础上,通过提供的接口对数据库进行并发操作,提升数据库维护效率及兼容性。

【技术实现步骤摘要】

本专利技术属于数据处理领域,尤其涉及一种sqlalchemy增加关系型数据库的异步io并发处理方法。


技术介绍

1、现有的sqlalchemy作为python关系型数据库orm开源框架,其自身没有具备并发操作能力以及超时保护机制,使其不能胜任有大数据量或多并发需求的数据库crud操作场景。

2、在自动化运维或测试脚本的开发领域中直接使用sqlalchemy会很大程度上降低了程序对数据库操作的效率,同时原生的sqlalchemy无法对超时操作做出及时明确的响应和处理,也使程序一定程度上缺少了必要的健壮性。


技术实现思路

1、鉴于以上现有技术的不足,专利技术的目的在于提供一种sqlalchemy增加关系型数据库的异步io并发处理方法。

2、本专利技术提供一种sqlalchemy增加关系型数据库的异步io并发处理方法,包括:

3、s1:封装关系型数据库的调用方法,获得封装模块;

4、s2:配置部署环境;

5、s3:基于所述部署环境,根据所述封装模块创建运行实例;

6、s4:通过所述运行实例对待执行sql进行执行,获得执行结果。

7、根据本专利技术提供的一种sqlalchemy增加关系型数据库的异步io并发处理方法,步骤s1中的所述封装模块包括:

8、dbtool类,所述dbtool类用于对关系型数据库进行操作维护;

9、dbresult类,所述dbresult类为待执行sql的返回结果;

10、dbresultdata类,所述dbresultdata类为待执行sql的返回数据表。

11、根据本专利技术提供的一种sqlalchemy增加关系型数据库的异步io并发处理方法,所述dbtool类包含的方法具体包括:

12、执行单个sql、并发执行多个sql、串行执行多个sql。

13、根据本专利技术提供的一种sqlalchemy增加关系型数据库的异步io并发处理方法,当所述dbtool类选择的方法为执行单个sql时,执行步骤具体包括:

14、s111:执行有超时保护的单个sql;

15、s112:执行无超时保护的单个sql。

16、根据本专利技术提供的一种sqlalchemy增加关系型数据库的异步io并发处理方法,当所述dbtool类选择的方法为并发执行多个sql时,执行步骤具体包括:

17、s121:判断执行方法的线程类型,所述线程类型包括多线程及协程,当所述线程类型为多线程时,执行步骤s122,当所述线程类型为协程时,执行步骤s123;

18、s122:通过多线程分别执行多个sql,其中每个线程根据dbtool类选择的方法为执行单个sql的执行方法进行执行;

19、s123:通过协程执行主函数及工作函数;

20、s124:基于协程,将待执行sql代理至执行单个sql的执行方法进行执行。

21、根据本专利技术提供的一种sqlalchemy增加关系型数据库的异步io并发处理方法,当所述dbtool类选择的方法为串行执行多个sql时,执行步骤具体包括:

22、s131:顺序执行无超时保护的多个sql。

23、根据本专利技术提供的一种sqlalchemy增加关系型数据库的异步io并发处理方法,步骤s2进一步包括:

24、s21:准备python环境;

25、s22:基于python环境,安装sqlalchemy依赖包及func-timeout依赖包;

26、s23:将所述封装模块置于python工程目录。

27、根据本专利技术提供的一种sqlalchemy增加关系型数据库的异步io并发处理方法,步骤s3进一步包括:

28、s31:基于python环境,安装数据分析数据库依赖包,所述数据分析数据库用于接收待执行sql的返回结果;

29、s32:根据所述数据分析数据库,连接数据分析数据库对应的url接口;

30、s33:指定数据库驱动,创建运行实例。

31、根据本专利技术提供的一种sqlalchemy增加关系型数据库的异步io并发处理方法,步骤s31中的所述数据分析数据库为pandas。

32、根据本专利技术提供的一种sqlalchemy增加关系型数据库的异步io并发处理方法,步骤s4进一步包括:

33、s41:通过参数化方法为sql传入变量,获得待执行sql;

34、s42:通过所述运行实例执行所述待执行sql,获得执行结果。

35、本专利技术有益效果如下:

36、本专利技术提供的一种sqlalchemy增加关系型数据库的异步io并发处理方法,通过封装关系型数据库的调用方法,简化了数据库操作的复杂性,使得开发者能够更高效地执行sql语句,同时,支持并发执行多个sql语句,显著提高了数据库操作的效率,特别是在处理大量数据或复杂查询时;本专利技术利用多线程和协程技术,实现了异步io并发处理,有效避免了数据库操作的阻塞问题,不仅可以提高系统的响应速度,还可以更好地利用系统资源,提升整体性能;本专利技术提供了执行单个sql、并发执行多个sql以及串行执行多个sql等多种执行方式,满足了不同场景下的需求,同时增强了执行的灵活性和可靠性;本专利技术通过详细的配置部署环境步骤,使得系统能够轻松地在不同的环境中运行,通过安装必要的依赖包和将封装模块置于python工程目录,简化了系统的部署过程;本专利技术通过连接数据分析数据库,可以将sql执行结果直接用于数据分析,为开发者提供了便捷的数据处理和分析工具,不仅可以提高数据分析的效率,还可以帮助开发者更好地理解和利用数据;另外本专利技术通过封装数据库操作方法和提供清晰的执行步骤,本专利技术的代码结构更加清晰、易于理解,不仅可以降低代码维护的难度,还可以提高代码的可读性和可重用性。

本文档来自技高网...

【技术保护点】

1.一种SQLAlchemy增加关系型数据库的异步IO并发处理方法,其特征在于,包括:

2.根据权利要求1所述的一种SQLAlchemy增加关系型数据库的异步IO并发处理方法,其特征在于,步骤S1中的所述封装模块包括:

3.根据权利要求2所述的一种SQLAlchemy增加关系型数据库的异步IO并发处理方法,其特征在于,所述DBTool类包含的方法具体包括:

4.根据权利要求3所述的一种SQLAlchemy增加关系型数据库的异步IO并发处理方法,其特征在于,当所述DBTool类选择的方法为执行单个SQL时,执行步骤具体包括:

5.根据权利要求3所述的一种SQLAlchemy增加关系型数据库的异步IO并发处理方法,其特征在于,当所述DBTool类选择的方法为并发执行多个SQL时,执行步骤具体包括:

6.根据权利要求3所述的一种SQLAlchemy增加关系型数据库的异步IO并发处理方法,其特征在于,当所述DBTool类选择的方法为串行执行多个SQL时,执行步骤具体包括:

7.根据权利要求1所述的一种SQLAlchemy增加关系型数据库的异步IO并发处理方法,其特征在于,步骤S2进一步包括:

8.根据权利要求1所述的一种SQLAlchemy增加关系型数据库的异步IO并发处理方法,其特征在于,步骤S3进一步包括:

9.根据权利要求1所述的一种SQLAlchemy增加关系型数据库的异步IO并发处理方法,其特征在于,步骤S31中的所述数据分析数据库为pandas。

10.根据权利要求1所述的一种SQLAlchemy增加关系型数据库的异步IO并发处理方法,其特征在于,步骤S4进一步包括:

...

【技术特征摘要】

1.一种sqlalchemy增加关系型数据库的异步io并发处理方法,其特征在于,包括:

2.根据权利要求1所述的一种sqlalchemy增加关系型数据库的异步io并发处理方法,其特征在于,步骤s1中的所述封装模块包括:

3.根据权利要求2所述的一种sqlalchemy增加关系型数据库的异步io并发处理方法,其特征在于,所述dbtool类包含的方法具体包括:

4.根据权利要求3所述的一种sqlalchemy增加关系型数据库的异步io并发处理方法,其特征在于,当所述dbtool类选择的方法为执行单个sql时,执行步骤具体包括:

5.根据权利要求3所述的一种sqlalchemy增加关系型数据库的异步io并发处理方法,其特征在于,当所述dbtool类选择的方法为并发执行多个sql时,执行步骤具体包括:<...

【专利技术属性】
技术研发人员:林健儒
申请(专利权)人:天翼视联科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1