Skip to content

Commit 83c3127

Browse files
committed
Postgres auto-reconnect
1 parent 5b3d35b commit 83c3127

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

funding/factory.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import timeago
66
from peewee import PostgresqlDatabase, SqliteDatabase, ProgrammingError
7+
from playhouse.shortcuts import ReconnectMixin
78
from aiocryptocurrency.coins import Coin, SUPPORTED_COINS
89
from aiocryptocurrency.coins.nero import Wownero, Monero
910
from aiocryptocurrency.coins.firo import Firo
@@ -27,7 +28,17 @@
2728
discourse = Discourse()
2829
proposal_task = None
2930

30-
database = PostgresqlDatabase(
31+
32+
class ReconnectingPGDatabase(ReconnectMixin, PostgresqlDatabase):
33+
def __init__(self, *args, **kwargs):
34+
import peewee as pw
35+
super(ReconnectingPGDatabase, self).__init__(*args, **kwargs)
36+
self._reconnect_errors = {
37+
pw.InterfaceError: ["connection already closed"]
38+
}
39+
40+
41+
database = ReconnectingPGDatabase(
3142
settings.DB_NAME,
3243
autorollback=True,
3344
user=settings.DB_USER,

0 commit comments

Comments
 (0)