由于与psycopg2中的恢复冲突而处理Postgresql Error -canceling语句

Jua*_*vid 4 postgresql psycopg2 python-2.7

我正在创建一个报告引擎,它通过备用服务器进行几次长查询,并使用pandas处理结果.一切正常,但有时我使用psycopg2游标执行这些查询有一些问题:使用以下消息取消查询:

ERROR: cancelling statement due to conflict with recovery
Detail: User query might have needed to see row versions that must be removed
Run Code Online (Sandbox Code Playgroud)

我正在调查这个问题

PostgreSQL错误:由于与恢复冲突而取消声明

https://www.postgresql.org/docs/9.0/static/hot-standby.html#HOT-STANDBY-CONFLICT

但所有解决方案都建议修复问题,修改服务器的配置.我无法进行这些修改(我们赢得了最后一场针对IT人员的足球比赛:))所以我想知道如何从开发人员的角度来处理这种情况.我可以使用python代码解决这个问题吗?我的临时解决方案很简单:捕获异常并重试所有失败的查询.也许可以做得更好(我希望如此).

提前致谢

Lau*_*lbe 6

如果不改变PostgreSQL配置,你可以做任何事情来避免这个错误(从PostgreSQL 9.1开始,你可以设置hot_standby_feedbackon).

您正在以正确的方式处理错误 - 只需重试失败的事务.