pytransaction
所属分类:调试/Bug
开发工具:Python
文件大小:0KB
下载次数:0
上传日期:2019-03-12 08:23:16
上 传 者:
sh-1993
说明: 发生异常时还原,
(revert when exception occurs,)
文件列表:
pytransaction/ (0, 2019-03-12)
pytransaction/__init__.py (1013, 2019-03-12)
setup.py (525, 2019-03-12)
# 伪事务处理
## 功能
对于一组函数,如果执行过程中发生异常, 按照反向的调用顺序依次调用对应的逆过程
## 栗子
```python
from pytransaction import Transaction
def test1(*args, **kwargs):
print('test1 running..', args, kwargs)
def test2(*args, **kwargs):
print('test2 running...', args, kwargs)
raise ValueError('oops, exception occurs')
def rollback(*args, **kwargs):
print('rolling back...', args, kwargs)
try:
with Transaction() as t:
t.run(test1, rollback, args=(1,2), kwargs={'arg3':3}, rargs=('a', 'b'), rkwargs={'t':'tt'})
t.run(test1, rollback, kwargs={'arg3':3})
t.run(test1, rollback, args=(4,), kwargs={'a':'aa'}, rargs=(5,6), rkwargs='same')
t.run(test2, rollback, args=('stop here',), rargs='same')
t.run(test1, rollback, args=('will not run'))
except Exception as e:
print('handle exceptions here')
raise e
```
## 注意
因为逆向操作也可能会失败,因此不能完全保证事务一定得到处理
近期下载者:
相关文件:
收藏者: