实际上,这不是django(iPython)shell的错。问题是打开django shell ./manage.py shell
的开发人员运行一些查询(它通常只生成选择),然后让shell运行或以某种方式杀死他们的(ssh)会话(实际上,我不确定是否后一种情况使交易开放 - 我还没有测试过它)
无论如何,nagios会定期警告这些空闲交易。我们当然可以致电developer.stop_doing_that_dammit()
,但这是不可靠的。
我正在寻找以允许开发人员使用django shell的方式解决这个问题的想法,但如果他们忘记关闭会话,就会关闭事务。
答案 0 :(得分:1)
你可能总是运行一个cron作业,它会在数据库中调用pg_cancel_backend(),因为后端空闲时间超过例如1天(当然这取决于nagios设置)。