reorg elab_query
This commit is contained in:
@@ -10,7 +10,8 @@ from utils.database import WorkflowFlags
|
||||
from utils.csv.loaders import get_next_csv_atomic
|
||||
from utils.orchestrator_utils import run_orchestrator, worker_context
|
||||
from utils.database.loader_action import update_status, unlock
|
||||
from utils.database.elab_query import get_data_as_csv
|
||||
from utils.database.action_query import get_data_as_csv, get_tool_info, get_elab_timestamp
|
||||
from utils.general import alterna_valori
|
||||
#from utils.ftp.elab_send import send_csv_to_customer
|
||||
|
||||
|
||||
@@ -20,7 +21,7 @@ logger = logging.getLogger()
|
||||
# Delay tra un processamento CSV e il successivo (in secondi)
|
||||
ELAB_PROCESSING_DELAY = 0.2
|
||||
# Tempo di attesa se non ci sono record da elaborare
|
||||
NO_RECORD_SLEEP = 60
|
||||
NO_RECORD_SLEEP = 30
|
||||
|
||||
async def worker(worker_id: int, cfg: object, pool: object) -> None:
|
||||
|
||||
@@ -30,27 +31,32 @@ async def worker(worker_id: int, cfg: object, pool: object) -> None:
|
||||
debug_mode = logging.getLogger().getEffectiveLevel() == logging.DEBUG
|
||||
logger.info("Avviato")
|
||||
|
||||
alternatore = alterna_valori([WorkflowFlags.CSV_RECEIVED,WorkflowFlags.SENT_RAW_DATA], [WorkflowFlags.DATA_ELABORATED, WorkflowFlags.SENT_ELAB_DATA])
|
||||
|
||||
while True:
|
||||
try:
|
||||
logger.info("Inizio elaborazione")
|
||||
|
||||
record = await get_next_csv_atomic(pool, cfg.dbrectable, WorkflowFlags.CSV_RECEIVED, WorkflowFlags.SENT_RAW_DATA)
|
||||
status, fase = next(alternatore)
|
||||
record = await get_next_csv_atomic(pool, cfg.dbrectable, status, fase)
|
||||
|
||||
if record:
|
||||
id, unit_type, tool_type, unit_name, tool_name = [x.lower().replace(" ", "_") if isinstance(x, str) else x for x in record]
|
||||
|
||||
'''
|
||||
if tool_elab_info['ftp_send']:
|
||||
tool_elab_info = await get_tool_info(fase, unit_name, tool_name, pool)
|
||||
if fase == WorkflowFlags.SENT_ELAB_DATA and tool_elab_info['ftp_send']:
|
||||
timestamp_matlab_elab = get_elab_timestamp(id, pool)
|
||||
if not tool_elab_info["duedate"] or tool_elab_info["duedate"] in ('0000-00-00 00:00:00', '') or tool_elab_info["duedate"] > timestamp_matlab_elab:
|
||||
if elab_csv := await get_data_as_csv(cfg, id, unit_name, tool_name, timestamp_matlab_elab, pool):
|
||||
print(elab_csv)
|
||||
#if await send_csv_to_customer(cfg, id, unit_name, tool_name, elab_csv, pool):
|
||||
#await update_status(cfg, id, , pool)
|
||||
#await update_status(cfg, id, , pool)
|
||||
if True:
|
||||
await update_status(cfg, id, WorkflowFlags.SENT_ELAB_DATA, pool)
|
||||
else:
|
||||
logger.info(f"id {id} - {unit_name} - {tool_name} {tool_elab_info['duedate']}: ftp put didn't executed because due date reached.")
|
||||
'''
|
||||
elif fase == WorkflowFlags.SENT_RAW_DATA and tool_elab_info['ftp_send_raw']:
|
||||
...
|
||||
|
||||
await unlock(cfg, id, pool)
|
||||
else:
|
||||
logger.info("Nessun record disponibile")
|
||||
await asyncio.sleep(NO_RECORD_SLEEP)
|
||||
|
||||
Reference in New Issue
Block a user