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) #经过测试我发现,只有在这个请求结束后 数据库的值才会真正改变

django 事务踩坑的更多相关文章

  1. 记一次 Spring 事务配置踩坑记

    记一次 Spring 事务配置踩坑记 问题描述:(SpringBoot + MyBatisPlus) 业务逻辑伪代码如下.理论上,插入数据 t1 后,xxService.getXxx() 方法的查询条 ...

  2. Kettle 事务、转换内顺序、excel模版、使用踩坑

    kettle中转换和作业的执行顺序:     1.一个作业内的转换,是顺序执行的.     2.一个转换内的步骤是并行执行的.     3.作业内不支持事务,转换内支持事务. 根据业务需要,通常需要在 ...

  3. nginx + gunicorn + django 2.0 踩坑

    部署踩坑 部署踩坑提前准备服务器端准备安装nginx使用uwsgi部署使用gunicorn配置配置nginx配置django中的路径url 提前准备 在本地能够 python(3) manage.py ...

  4. Django model重写save方法及update踩坑记录

    一个非常实用的小方法 试想一下,Django中如果我们想对保存进数据库的数据做校验,有哪些实现的方法? 我们可以在view中去处理,每当view接收请求,就对提交的数据做校验,校验不通过直接返回错误, ...

  5. SQL Server 在Alwayson上使用内存表"踩坑"

    200 ? "200px" : this.width)!important;} --> 介绍 因为线上alwayson环境的一个数据库上使用内存表.经过大概一个星期监控程序发 ...

  6. react-router 踩坑记

    react-router踩坑分享 背景 辛苦历程 JavaScript动态修改 第一次尝试 第二次尝试 第三次尝试 第四次尝试 总结步骤 其他方案 原理 History 常见的3种History Br ...

  7. djangorestframework+vue-cli+axios,为axios添加token作为headers踩坑记

    情况是这样的,项目用的restful规范,后端用的django+djangorestframework,前端用的vue-cli框架+webpack,前端与后端交互用的axios,然后再用户登录之后,a ...

  8. AeroSpike踩坑手记1:Architecture of a Real Time Operational DBMS论文导读

    又开了一个新的坑,笔者工作之后维护着一个 NoSQL 数据库.而笔者维护的数据库正是基于社区版本的 Aerospike打造而来.所以这个踩坑系列的文章属于工作总结型的内容,会将使用开发 Aerospi ...

  9. TiDB 深度实践之旅--真实“踩坑”经历

    美团点评 TiDB 深度实践之旅(9000 字长文 / 真实“踩坑”经历) 4   PingCAP · 154 天前 · 3956 次点击 这是一个创建于 154 天前的主题,其中的信息可能已经有所发 ...

  10. 微信小程序踩坑集合

    1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教程:https://mp.weixin.qq.com/debu ...

随机推荐

  1. Slave_IO_Running: Connecting--一种问题的解决方案

    主要有三个原因: 1.网络不同 2.密码不对 3.pos不对 这里只介绍我碰到的问题--不能远程连接数据库.即在从机上对主机进行以下命令 mysql -u**** -p**** -h192.168.* ...

  2. JZOJ 5451.Genocide

    题目 题解 对于 \(m=1\) 这档分 我们可以 \(dp\) 然后斜率优化 具体来说就是 \(f_i = f_j + \frac{(i-j)\times (i-j+1)}{2} + sum[j]- ...

  3. Hbase学习三:Hbase常用命令总结

    转载请注明出处: 1.Hbase连接 1.1.进入hbase命令行 hbase shell # 或 bin/hbase shell 1.2.查看帮助 help 1.3.查看所有表 list 2.表操作 ...

  4. Mbps 与 MBps

    bps 是速率单位,表示比特每秒(bit per second),单位也可以是 bit/s.1K = 103 bit/s:1M = 106 bit/s.Mbps 中的b不是字节 Byte,而是比特 b ...

  5. Java对象布局

    1. 引言 由于Java面向对象的思想,在JVM中需要大量存储对象,存储时为了实现一些额外的功能,需要在对象中添加一些标记字段用于增强对象功能 .在学习并发编程知识synchronized时,我们总是 ...

  6. 需要登陆,请求数据 session

    requests中的session模块思路:# 1. 登录 --> 等到cookie# 2.带着cookie 请求到书架的url-->书架上的内容#注意:# 两个操作要连续起来操作# 我们 ...

  7. openssh 升级

    1.基础安装包准备  PS:最好先下载 telnet 服务端并启动,以免 sshd 服务启动失败后无法登录 官方网站下载最新版*.tar.gz安装包: 官方下载地址:http://ftp.openbs ...

  8. C# DevExpress GridControl中BandedGridView表格使用

    1.设计器方式创建 1.点击"Change view">>然后在选中"Convert to"选项>>最后选中点击"Banded ...

  9. 用js实现元素两个元素位置对齐

    一.问题描述 使得填表单位那一行字与下面的表格左对齐,对表格使用css中的margin:auto实现了居中,但是对那一行字(用div包裹的)使用margin:auto不生效:并且2021年下面对应的月 ...

  10. 2022-05-05内部群每日三题-清辉PMP

    1.在项目规划阶段,质量保证经理建议实施三重测试环境以确保产品质量.项目经理确定这项建议将会增加成本,而且开发和认证环境将足以保证质量.项目经理应使用什么来影响质量保证经理? A.质量成本(COQ) ...