fix caricamenti
This commit is contained in:
@@ -2,11 +2,10 @@
|
||||
import logging
|
||||
import asyncio
|
||||
|
||||
from utils.database import FLAG_TO_TIMESTAMP, BATCH_SIZE
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
timestamp_cols = ["inserted_at", "loaded_at", "elaborated_at", "sent_at"]
|
||||
|
||||
|
||||
async def load_data(cfg: object, matrice_valori: list, pool: object) -> bool:
|
||||
"""Carica una lista di record di dati grezzi nel database.
|
||||
|
||||
@@ -62,15 +61,23 @@ async def load_data(cfg: object, matrice_valori: list, pool: object) -> bool:
|
||||
`RssiModule` = IF({cfg.dbrawdata}.`RssiModule` != new_data.RssiModule, new_data.RssiModule, {cfg.dbrawdata}.`RssiModule`),
|
||||
`Created_at` = NOW()
|
||||
"""
|
||||
|
||||
#logger.info(f"Query insert: {sql_insert_RAWDATA}.")
|
||||
#logger.info(f"Matrice valori da inserire: {matrice_valori}.")
|
||||
rc = False
|
||||
async with pool.acquire() as conn:
|
||||
async with conn.cursor() as cur:
|
||||
for attempt in range(cfg.max_retries):
|
||||
try:
|
||||
logging.info(f"Loading data attempt {attempt + 1}.")
|
||||
await cur.executemany(sql_insert_RAWDATA, matrice_valori)
|
||||
await conn.commit()
|
||||
|
||||
for i in range(0, len(matrice_valori), BATCH_SIZE):
|
||||
batch = matrice_valori[i:i + BATCH_SIZE]
|
||||
|
||||
await cur.executemany(sql_insert_RAWDATA, batch)
|
||||
await conn.commit()
|
||||
|
||||
logging.info(f"Completed batch {i//BATCH_SIZE + 1}/{(len(matrice_valori)-1)//BATCH_SIZE + 1}")
|
||||
|
||||
logging.info("Data loaded.")
|
||||
rc = True
|
||||
break
|
||||
@@ -93,7 +100,7 @@ async def load_data(cfg: object, matrice_valori: list, pool: object) -> bool:
|
||||
return rc
|
||||
|
||||
|
||||
async def update_status(cfg: object, id: int, status: int, pool: object) -> None:
|
||||
async def update_status(cfg: object, id: int, status: str, pool: object) -> None:
|
||||
"""Aggiorna lo stato di un record nella tabella dei record CSV.
|
||||
|
||||
Args:
|
||||
@@ -106,7 +113,11 @@ async def update_status(cfg: object, id: int, status: int, pool: object) -> None
|
||||
async with conn.cursor() as cur:
|
||||
try:
|
||||
await cur.execute(
|
||||
f"update {cfg.dbrectable} set status = {status}, {timestamp_cols[status]} = now() where id = {id}"
|
||||
f"""update {cfg.dbrectable} set
|
||||
status = status | {status},
|
||||
{FLAG_TO_TIMESTAMP[status]} = now()
|
||||
where id = {id}
|
||||
"""
|
||||
)
|
||||
await conn.commit()
|
||||
logging.info(f"Status updated id {id}.")
|
||||
|
||||
Reference in New Issue
Block a user