我需要在一条记录完成插入数据库后,调用 os.system 执行其他的命令,而此命令中有对这条记录的 update 操作,目前无论是重写 save_model,model.save,侦听 post_save.connect 信号,都会报死锁 Lock wait timeout exceeded; try restarting transaction
请各位大神指点
请各位大神指点
1
fuxinya May 26, 2022 via Android
说明你开了两个事务,请在一个事务中操作
|
2
colatea OP @fuxinya
def save_model(self, request, obj, form, change): super().save_model(request, obj, form, change) os.system("XXXXXX") 请问 os.system("XXXXXX")怎么能加到 orm 的事务里?或者怎么知道原来的事务结束了?post_save 信号不灵啊 |
3
colatea OP 哦,忘记说了,这是在 admin 里的操作
|
4
RadishWind May 26, 2022
@colatea 从逻辑上的解耦做吧, 其实不太建议这种操作 比如把 os 的操作改成异步的
|
5
westoy May 26, 2022
os.system('nohup xxxx &')
|