feat: use connection pool instead of a single shared connection
This is useful for multitask environments (like the API), to avoid conflicts
This commit is contained in:
parent
a22413bb0b
commit
aa72971627
5 changed files with 95 additions and 62 deletions
|
|
@ -1,7 +1,6 @@
|
|||
import os
|
||||
from functools import lru_cache
|
||||
|
||||
from adapters.postgres import connect, PgDeviceRepository, PgReadingRepository
|
||||
from adapters.postgres import PgDeviceRepository, PgReadingRepository
|
||||
from adapters.postgres_query import PgReadingQueryRepository
|
||||
from adapters.mqtt import PahoMqttBroker
|
||||
from services.uplink_service import UplinkService
|
||||
|
|
@ -10,21 +9,17 @@ from services.consumption_service import ConsumptionService
|
|||
MQTT_HOST = os.getenv("MQTT_HOST", "mosquitto")
|
||||
MQTT_PORT = int(os.getenv("MQTT_PORT", 1883))
|
||||
MQTT_TOPIC = os.getenv("MQTT_TOPIC", "application/+/device/+/event/up")
|
||||
DB_URI = os.getenv("DATABASE_URI", "postgresql://simugaz:simugaz@db/simugaz")
|
||||
|
||||
@lru_cache
|
||||
def get_conn():
|
||||
return connect(DB_URI)
|
||||
|
||||
## Repositories
|
||||
def get_device_repo() -> PgDeviceRepository:
|
||||
return PgDeviceRepository(get_conn())
|
||||
return PgDeviceRepository()
|
||||
|
||||
def get_reading_repo() -> PgReadingRepository:
|
||||
return PgReadingRepository(get_conn())
|
||||
return PgReadingRepository()
|
||||
|
||||
def get_query_repo() -> PgReadingQueryRepository:
|
||||
return PgReadingQueryRepository(get_conn())
|
||||
return PgReadingQueryRepository()
|
||||
|
||||
|
||||
## Services
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue