django 事务踩坑
2024-10-21 12:40:58
with transaction.atomic():
save_id = transaction.savepoint()
#xx.字段A ormg更新操作
#提交事务
transaction.savepoint_commit(save_id)
#从django中看到 xx.字段A的值已经改变,但是通过三方工具链接到数据库,发现数据其实并未改变,那神魔时候数据库的值会改变?
print(xx.字段A)#该接口为第三方接口,三方接口会查询xx.字段A,三方反应:xx.字段A的值并没有改变,经测试发现确实提交事务savepoint_commit后也没有改变
res = requests.post(url=refresh_task_api, json=data)
return JsonResponse(result) #经过测试我发现,只有在这个请求结束后 数据库的值才会真正改变 问题来了:怎么解决那?
with transaction.atomic():
save_id = transaction.savepoint()
#xx.字段A ormg更新操作
#提交事务
transaction.savepoint_commit(save_id)
#从django中看到 xx.字段A的值已经改变,但是通过三方工具链接到数据库,发现数据其实并未改变,那神魔时候数据库的值会改变?
print(xx.字段A)#启动一个子线程调用三方接口去执行
def async(f):
def wrapper(*args, **kwargs):
thr = Thread(target=f, args=args, kwargs=kwargs)
thr.start()
return wrapper
def A(data):
res = requests.post(url=refresh_task_api, json=data)
@async
A()
return JsonResponse(result) #经过测试我发现,只有在这个请求结束后 数据库的值才会真正改变
最新文章
- DSP using MATLAB 示例Example3.9
- 单机运行环境搭建之 --CentOS-6.5安装配置Tengine
- solr性能调优
- ThinkPHP URL模式和URL重写
- C# windows窗体程序打包安装及卸载
- BOOST 线程完全攻略 - 扩展 - 可被关闭的线程类
- 快速挂载和分离VHD文件的小脚本
- CSS3学习系列之盒样式(二)
- mysql数据库基本操作以及获取数据库强大帮助文档
- .net 系列:事件和委托
- android发布新版忘记keystore(jks)密码终极解决方案
- object detection[YOLO]
- python列表的常用方法
- ROM后缀含义
- php Pthread 多线程 Worker
- H5内联视频
- 可重入锁 &; 不可重入锁
- python.numpy.std()计算矩阵标准差
- delphi java 日期 转换 获取Unix时间戳
- js常用正则收集
热门文章
- 51nod 1675.序列变换
- JZOJ 5343. 【NOIP2017模拟9.3A组】健美猫
- 跳板攻击之:frp代理转发
- CCRD_TOC_2007_EULAR专辑_2
- Vue2安装less版本过高问题,需要降级
- MyBatis-Plus通用Iservice 方法详解
- 安装pytorch报错 ERROR: Could not install packages due to an OSError: [Errno 28] No space left on device
- 存储型XSS的利用
- dp-状压dp
- css - content-visibility