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