Gestire HTTP_STATUS_CODE 409 - Conflict
Dante ha restituito, ad ew2openapi, un http_status_code=409
per l'inserimento di un pick-scnl
a causa di un conflitto sul DataBase nell'inserimento di un SCNL.
Analizzando i log per la stazione incriminata MCIV.CHZ.EL.--
(che riporto sotto), penso che il problema sia dovuto al fatto che all'incirca allo stesso istante (2025-03-12 19:44:05.87
) il pick-scnl
sia stato inserito sia da hew1
che da hew2
; l'inserimento di una SCNL avviene mediante SELECT or CREATE
.
Quindi:
-
hew2
ha fatto laSELECT
suscnl
, non ha trovato risultato e l'ha inserito (INSERT
) -
hew1
ha fatto laSELECT
suscnl
, non ha trovato risultato e l'ha inserito (INSERT
) ma ha ottentuto unduplicate key value
questo ha portato a "buttare" il pick
.
Proposta: In caso di 409
, ritenterei per un numero finito di volte a distanza di qualche secondo.
hew2:[2025-03-12 19:44:05.878158 - 2joAR] - API-v3.38.0.INFO: {"data":{"ewLogo":{"type":"TYPE_PICK_SCNL","module":"MOD_PICK_EW","installation":"INST_INGV","instance":"hew2","user":"ew","hostname":"af638c27a58b"},"ewMessage":{"pickId":11157682,"network":"EL","station":"MCIV","component":"CHZ","location":"--","firstMotion":"D","pickWeight":2,"timeOfPick":"2025-03-12T19:43:50.950Z","pAmplitude":[3997,3164,1802]}}} [] []
hew1:[2025-03-12 19:44:05.875564 - Ip6ul] - API-v3.38.0.INFO: {"data":{"ewLogo":{"type":"TYPE_PICK_SCNL","module":"MOD_PICK_EW","installation":"INST_INGV","instance":"hew1","user":"ew","hostname":"dae103749e69"},"ewMessage":{"pickId":10929569,"network":"EL","station":"MCIV","component":"CHZ","location":"--","firstMotion":"D","pickWeight":2,"timeOfPick":"2025-03-12T19:43:50.950Z","pAmplitude":[3997,3164,1802]}}} [] []
hew1:[2025-03-12 19:44:05.972074 - Ip6ul] - API-v3.38.0.ERROR: SQLSTATE[23505]: Unique violation: 7 ERROR: duplicate key value violates unique constraint "idx_110003_sta" DETAIL: Key (sta, cha, loc, net)=(MCIV, CHZ, --, EL) already exists. (SQL: insert into "scnl" ("net", "sta", "cha", "loc") values (EL, MCIV, CHZ, --) returning "id") {"exception":"[object] (Illuminate\\Database\\QueryException(code: 23505): SQLSTATE[23505]: Unique violation: 7 ERROR: duplicate key value violates unique constraint \"idx_110003_sta\"\nDETAIL: Key (sta, cha, loc, net)=(MCIV, CHZ, --, EL) already exists. (SQL: insert into \"scnl\" (\"net\", \"sta\", \"cha\", \"loc\") values (EL, MCIV, CHZ, --) returning \"id\") at /app/vendor/laravel/framework/src/Illuminate/Database/Connection.php:712)\n[previous exception] [object] (PDOException(code: 23505): SQLSTATE[23505]: Unique violation: 7 ERROR: duplicate key value violates unique constraint \"idx_110003_sta\"\nDETAIL: Key (sta, cha, loc, net)=(MCIV, CHZ, --, EL) already exists. at /app/vendor/laravel/framework/src/Illuminate/Database/Connection.php:373)"} []