django 事务踩坑

 

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

 

posted on   小胖子方法  阅读(138)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示