问题:python,django多线程读取ecel并导入到数据库,主线程事务有效,子线程事务失效
代码截图
问题简化版:
@action(methods=['post'], detail=False)
@transaction.atomic
def uploadTest(self, request):
data = {'code': 0, 'msg': '', 'data': []}
connection.cursor().execute("INSERT INTO bby_test (id, name,age) VALUES (%s, %s, %s)", (1, 'name', 1))
for i in range(0, 5):
# 1.多线程调用 X
pool.submit(Test,i)
# 2.方法调用 √
Test(i)
# 问题:如何操作使多线程达到普通方法调用的效果,使一次子线程失败,所有子线程及主线程保持一致,不去操作数据库
return JsonResponse(data)
def Test(i):
print(i)
if i % 2 == 0:
a = 1/0
connection.cursor().execute("INSERT INTO bby_test (id, name,age) VALUES (%s, %s, %s)", (2, 'name2', 2))