我需要在一条记录完成插入数据库后,调用 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 &') |