Update e re-test creazione ordini
This commit is contained in:
@@ -318,97 +318,5 @@ namespace Lux.API.Controllers
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
#if false
|
||||
[HttpPost("enqueue")]
|
||||
/// <summary>
|
||||
/// Accodamento richiesta di calcolo prod
|
||||
/// </summary>
|
||||
/// <param name="reqType">Tipo richiesta</param>
|
||||
/// <param name="reqUid">UID (riga ordine)</param>
|
||||
/// <param name="currRequest">Contenuto della richiesta come QuestionDTO</param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> EnqueueRequest(string reqType, string reqUid, CalcRequestDTO currRequest)
|
||||
{
|
||||
bool done = false;
|
||||
int nId = 1;
|
||||
// salvo su cache x successivo reinvio da currRequest
|
||||
QuestionDTO calcRequest = new QuestionDTO(nId, currRequest.EnvType, currRequest.DictExec);
|
||||
// salvo in cache contenuto della richiesta x UID
|
||||
string currKey = $"{redisOrderReqKey}:{reqUid.Replace("/", ":")}";
|
||||
done = await _redisService.SetAsync(currKey, calcRequest.sProcessArgs);
|
||||
// accodo la nuova richiesta
|
||||
//RedisKey queueKey = (RedisKey)$"{redisBaseKey}:OrderQueue:{reqType}";
|
||||
_redisService.QueuePush(queueKey, (RedisValue)reqUid);
|
||||
// dizionario richieste: è il serializzato dell'elenco degli UID da calcolare...
|
||||
var currList = await _redisService.QueueListAllAsync(queueKey);
|
||||
Dictionary<string, string> calcDict = new Dictionary<string, string>();
|
||||
calcDict.Add("ReqLen", $"{calcDict.Count}");
|
||||
string listReq = JsonConvert.SerializeObject(currList);
|
||||
calcDict.Add("ReqList", listReq);
|
||||
// preparo richiesta di calcolo x UID da inviare
|
||||
QuestionDTO chRequest = new QuestionDTO(nId, currRequest.EnvType, calcDict);
|
||||
// invio sul channel redis della richiesta di processing
|
||||
await _redisService.PublishAsync(chPub, chRequest.sProcessArgs);
|
||||
// ritorno
|
||||
return done;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Chiamata GET:
|
||||
/// - elenco delle richieste di stima da eseguire
|
||||
/// - vengono registrate come "passate" al calcolo alla data-ora della richiesta
|
||||
/// GET: api/Prod/estimation
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("estimation")]
|
||||
public async Task<ActionResult<List<EstimReqPayloadDTO>>> EstimationRequestQueue()
|
||||
{
|
||||
Stopwatch sw = new Stopwatch();
|
||||
sw.Start();
|
||||
var listReq = new List<EstimReqPayloadDTO>();
|
||||
// vado a recuperare da REDIS elenco degli ordini NON ancora associati ad 1/+ prod
|
||||
|
||||
// opzione 1: restituisco TUTTI ordini NON ancora eseguiti
|
||||
// opzione 2: restituisco dall'inizio solo max(n) non ancora eseguiti? (es primi 5 ordini)
|
||||
|
||||
// genero elenco degli ordini e per ogni ordine aggiungo il Dict<ItemTag, OrderRowUid>
|
||||
await Task.Delay(100);
|
||||
|
||||
// opzione 1: per tutti gli ordini ritornato registro data-ora invio e tolgo dalla coda...
|
||||
// opzione 2: aspetto conferma dal sistema che li ha presi in carico e registro data-ora...
|
||||
|
||||
sw.Stop();
|
||||
Log.Info($"EstimationRequestQueue | {sw.Elapsed.TotalMilliseconds:N3} ms");
|
||||
return Ok(listReq);
|
||||
}
|
||||
/// <summary>
|
||||
/// Chiamata GET:
|
||||
/// - elenco delle richieste di ottimizzazione/nesting da eseguire
|
||||
/// - vengono registrate come "passate" al calcolo alla data-ora della richiesta
|
||||
/// GET: api/Prod/estimation
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("optmization")]
|
||||
public async Task<ActionResult<List<EstimReqPayloadDTO>>> OptimitionRequestQueue()
|
||||
{
|
||||
Stopwatch sw = new Stopwatch();
|
||||
sw.Start();
|
||||
var listReq = new List<EstimReqPayloadDTO>();
|
||||
// vado a recuperare da REDIS elenco degli ordini NON ancora associati ad 1/+ prod
|
||||
|
||||
// opzione 1: restituisco TUTTI ordini NON ancora eseguiti
|
||||
// opzione 2: restituisco dall'inizio solo max(n) non ancora eseguiti? (es primi 5 ordini)
|
||||
|
||||
// genero elenco degli ordini e per ogni ordine aggiungo il Dict<ItemTag, OrderRowUid>
|
||||
await Task.Delay(100);
|
||||
|
||||
// opzione 1: per tutti gli ordini ritornato registro data-ora invio e tolgo dalla coda...
|
||||
// opzione 2: aspetto conferma dal sistema che li ha presi in carico e registro data-ora...
|
||||
|
||||
sw.Stop();
|
||||
Log.Info($"EstimationRequestQueue | {sw.Elapsed.TotalMilliseconds:N3} ms");
|
||||
return Ok(listReq);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user