System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于数据处理领域,尤其涉及一种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所述的一种SQLAlche
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时,执行步骤具体包括:<...
【专利技术属性】
技术研发人员:林健儒,
申请(专利权)人:天翼视联科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。