sqlalchemy 多线程 创建session
1、基于threding.local,推荐使用
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session
from models import Student
from threading import Thread engine = create_engine(
"mysql+pymysql://root:密码@127.0.0.1:3306/数据库?charset=utf8",
max_overflow=0, # 超过连接池大小外最多创建的连接
pool_size=5, # 连接池大小
pool_timeout=30, # 池中没有线程最多等待的时间,否则报错
pool_recycle=-1 # 多久之后对线程池中的线程进行一次连接的回收(重置)
)
SessionFactory = sessionmaker(bind=engine)
session = scoped_session(SessionFactory) def task():
ret = session.query(Student).all()
# 将连接交还给连接池
session.remove() for i in range(20):
t = Thread(target=task)
t.start()
2、基于多线程
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
from models import Student
from threading import Thread engine = create_engine(
"mysql+pymysql://root:密码@127.0.0.1:3306/数据库?charset=utf8",
max_overflow=0, # 超过连接池大小外最多创建的连接
pool_size=5, # 连接池大小
pool_timeout=30, # 池中没有线程最多等待的时间,否则报错
pool_recycle=-1 # 多久之后对线程池中的线程进行一次连接的回收(重置)
)
SessionFactory = sessionmaker(bind=engine) def task():
# 去连接池中获取一个连接
session = SessionFactory()
ret = session.query(Student).all()
# 将连接交还给连接池
session.close() for i in range(20):
t = Thread(target=task)
t.start()
sqlalchemy 多线程 创建session的更多相关文章
- SQLAlchemy 中的 Session、sessionmaker、scoped_session
目录 一.关于 Session 1. Session是缓存吗? 2. Session作用: 3. Session生命周期: 4. Session什么时候创建,提交,关闭? 4. 获取一个Session ...
- Java学习笔记-多线程-创建线程的方式
创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行 ...
- 在Visual Studio 的 “一般处理程序 ” .ashx 文件中如何创建Session 对象
只需要继承这个接口即可实现创建Session对象. IHttpHandler,System.Web.SessionState.IHttpSessionState 代码示例: public class ...
- python多线程创建与使用(转)
原文:http://codingpy.com/article/python-201-a-tutorial-on-threads/ 创建多线程 创建多线程主要有2种方式. 使用threading.Thr ...
- 客户端在向服务器的动态页发出请求的时候,服务器才会创建session
注意,纯的HTML页面很有可能导致服务器不会为用户创建session,即便是新到的用户也是如此. 在某些情况下也可能与服务器的具体配置有关系. 尤其是在对session进行监听的时候要注意这一点.
- SQLAlchemy 应用创建
1.首先创建app文件夹 同django 创建app 一样 创建文件 在创建的views中写入两个蓝图函数为了操作数据库的增删改查 acc.py from flask import Blueprint ...
- 【转】OpenGL多线程创建纹理,附加我的测试结果
原文地址 http://www.cnblogs.com/mazhenyu/archive/2010/04/29/1724190.html 关于这个问题以前只知道多个线程不能同时使用一个RC,结果为了能 ...
- hibernate 创建session
//1. 创建一个 SessionFactory 对象 SessionFactory sessionFactory = null; //1). 创建 Configuration 对象: 对应 hibe ...
- java多线程创建-Thread,Runnable,callable和threadpool
java创建多线程的方式有许多种,这里简要做个梳理 1. 继承Thread类 继承java.lang.Thread类,创建本地多线程的类,重载run()方法,调用Thread的方法启动线程.示例代码如 ...
随机推荐
- Argus--[优先队列]
Description A data stream is a real-time, continuous, ordered sequence of items. Some examples inclu ...
- P1039 大规模间谍入侵
题目描述 爱丽丝魔法王国成立10周年,于是决定矩形国庆大阅兵. 在国庆大阅兵期间,为了防止暗黑王国的间谍乔装成平民混入,需要对每一个进城的人做检测. 因为暗黑王国的人长得和爱丽丝魔法王国的人长得很像, ...
- RabbitMQ-Exchange交换器
交换器分类 RabbitMQ的Exchange(交换器)分为四类: direct(默认) headers fanout topic 其中headers交换器允许你匹配AMQP消息的header而非路由 ...
- webpack4.0基本配置,超简单!
最近复习了一下webpack,使用的是4.0版本. 下图是基本目录结构,最后留有代码地址,有兴趣可以去看看. 直接上代码(依赖未完全使用): 项目的所有依赖都可以安装,每个都有详细的注释.] cons ...
- 相似文本文档分析之SimHash算法
Simhash算法: Simhash算法由Google的Charikar提出,是将一篇文档转化为n位的签名,通过比较签名的相似度来计算原文档的相似度.签名越相近,则文档越相近.因此,整个过程就不会涉及 ...
- 从物联网设备生命周期理解Apple Homekit框架
本次笔记主要基于苹果公开的HomeKit Accessory Protocol协议文档和IOS Security Guide中相关部分. 总体来讲,设备与App之间采用端到端的加密,密钥由设备和App ...
- 【Ubuntu】16.04网卡信息配置
①查看操作系统版本信息: ②查看网卡信息 输入ifconfig命令查看网卡信息,下图enp0s25就是网卡名称. ifconfig ③配置网卡文件 注意:不同的linux系统,网卡配置文件是不同的,这 ...
- TDengine 时序数据库的 ADO.Net Core 提供程序 Maikebing.EntityFrameworkCore.Taos
简介 Entity, Framework, EF, Core, Data, O/RM, entity-framework-core,TDengine Maikebing.Data.Taos 是一个基于 ...
- 【Linux】Linux下date,time等时间设置
date命令的帮助信息 [root@localhost source]# date --help用法:date [选项]... [+格式] 或:date [-u|--utc|--universal] ...
- python中交换两个变量值的方法
a = 4b = 5 #第1种c = 0c = aa = bb = c #第2种a = a+bb = a-ba = a-b #第3种a,b = b,a print("a=%d,b=%d&qu ...