实际上,这不是 django (iPython) shell 的错。问题是打开 django shell ./manage.py shell
的开发人员运行一些查询(它通常只生成选择),然后让 shell 运行或以某种方式终止他们的(ssh) session (实际上,我不确定后一种情况是否会使交易保持打开状态——我还没有测试过)
无论如何,nagios 会定期对这些空闲事务发出警报。我们当然可以调用 developer.stop_doing_that_dammit()
但它不可靠。
我正在寻找以允许开发人员使用 django shell 的方式解决此问题的想法,但如果他们忘记关闭 session ,则关闭事务。
最佳答案
您可以始终运行一个 cron 作业,它将在数据库中调用 pg_cancel_backend(),用于空闲时间超过例如1 天(当然这取决于 nagios 设置)。
关于python - django shell 触发 Postgres 空闲事务问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3427505/