psycopg2与事务的集成
项目描述
psycopg2与事务的集成
本软件包提供了psycopg2和transaction包之间的两阶段提交集成。
示例用法
>>> import psycopg2, psycopg2transaction, transaction >>> conn = psycopg2.connect(mydsn) >>> trans = transaction.get() >>> psycopg2transaction.join(conn, trans) >>> ... do things with the psycopg2 connection >>> transaction.commit()
这只是一个示例。连接可能来自池或其他方式已经存在,只要它处于可以开始分布式事务的状态。
同样,事务可能来自如上所示的线程局部事务管理器,或者来自应用程序管理的事务管理器。
示例中的关键行是
>>> psycopg2transaction.join(conn, trans)
通过调用事务的commit方法提交连接中的工作,通常是通过调用事务管理器的commit,如上所示。
如果您使用线程局部事务管理器(如示例中所示),则可以省略join的transaction参数
>>> psycopg2transaction.join(conn)
连接管理
提供有限的连接管理
>>> dsn = 'dbname=test' >>> conn = psycopg2transaction.join(dsn) ... >>> conn = psycopg2transaction.join(dsn) ... >>> transaction.commit()
如果您传递连接字符串而不是连接到join,则会为您打开一个连接,并在提交事务时关闭它。如果多次使用相同的连接字符串调用join,则使用并返回相同的连接。
使用Postgres通知
您不能在已经使用NOTIFY(或LISTEN或UNLISTEN)的PostgreSQL事务中使用两阶段提交。您可以通过传递一个带有通知名称或一系列字符串通知名称的notify参数来在事务提交后、管理连接关闭前使用NOTIFY,从而触发NOTIFY的使用。这些字符串可以是简单的名称,也可以是后面跟有逗号和字符串数据的名称,正如在notify表达式中跟随NOTIFY那样。
>>> conn = psycopg2transaction.join(dsn, notify='myjobs')
变更
0.1.1 (2017-03-18)
包元数据。
0.1.0 (2017-03-18)
初始发布
项目详情
关闭
psycopg2transaction-0.1.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ffe007666c782860b09999eaf04e4b60d2045b80146a696be162dbb860a0d9ac |
|
MD5 | c3d62a2a80f1c6be3683cb4d0ca44919 |
|
BLAKE2b-256 | 39fc82d72616ee2974711fa5fb313a7198d5a38c087271b92ef3c878767c0f75 |