Ancora update gestione envir da completare

This commit is contained in:
Samuele Locatelli
2026-02-09 19:23:21 +01:00
parent 5ef1f422c2
commit 46079afb45
7 changed files with 38 additions and 28 deletions
+30 -17
View File
@@ -97,13 +97,17 @@ namespace Lux.API.Controllers
/// Chiamata GET:
/// - fornisce il primo job da eseguire dalla coda (SE presente)
/// - viene registrato come "in corso" e spostato dalla coda richiesta
/// GET: api/Prod/getnext
/// GET: api/Prod/getnext/WINDOW
/// GET: api/Prod/getnext/BEAM
/// </summary>
/// <param name="envir">Environment della richiesta</param>
/// <returns></returns>
[HttpGet("getnext")]
public async Task<ActionResult<QuestionDTO>> GetNext()
[HttpGet("getnext/{envir}")]
public async Task<ActionResult<QuestionDTO>> GetNext(string envir)
{
var result = await PService.GetNext();
Constants.EXECENVIRONMENTS cEnvir = Constants.EXECENVIRONMENTS.WINDOW;
Enum.TryParse(envir, out cEnvir);
var result = await PService.GetNext(cEnvir);
QuestionDTO? deserRes = JsonConvert.DeserializeObject<QuestionDTO>(result);
if (deserRes != null)
{
@@ -116,7 +120,9 @@ namespace Lux.API.Controllers
deserRes.Args.Remove("RUID");
}
// lo aggiungo!
string envir = $"{deserRes.ExecEnvironment}";
#if false
string envir = $"{deserRes.ExecEnvironment}";
#endif
var mode = deserRes.Args["Mode"];
var sub = deserRes.Args["SubMode"];
var uid = deserRes.Args["UID"];
@@ -138,7 +144,6 @@ namespace Lux.API.Controllers
/// <summary>
/// Ritorno calcolo
/// </summary>
/// <param name="id">Chiave auth valida (da implementare)</param>
/// <param name="retData"></param>
/// <returns></returns>
[HttpPost("jobreturn")]
@@ -189,16 +194,22 @@ namespace Lux.API.Controllers
/// <summary>
/// Chiamata GET: num richieste in coda (se non specificato è waiting, altrimenti )
/// GET: api/Prod/queue-len/
/// GET: api/Prod/queue-len/waiting
/// GET: api/Prod/queue-len/running
/// GET: api/Prod/queue-len/WINDOW/
/// GET: api/Prod/queue-len/WINDOW/waiting
/// GET: api/Prod/queue-len/WINDOW/running
/// GET: api/Prod/queue-len/BEAM/
/// GET: api/Prod/queue-len/BEAM/waiting
/// GET: api/Prod/queue-len/BEAM/running
/// </summary>
/// <param name="id">uid oggetto</param>
/// <param name="envir">Environment della richiesta</param>
/// <param name="type">Tipo coda (default waiting)</param>
/// <returns></returns>
[HttpGet("qlen/{type}")]
public async Task<IActionResult> QueueLen(QueueType type = QueueType.waiting)
[HttpGet("qlen/{envir}/{type}")]
public async Task<IActionResult> QueueLen(string envir, QueueType type = QueueType.waiting)
{
var result = await PService.QueueLen(type);
Constants.EXECENVIRONMENTS cEnvir = Constants.EXECENVIRONMENTS.WINDOW;
Enum.TryParse(envir, out cEnvir);
var result = await PService.QueueLen(cEnvir, type);
return Ok(result);
}
@@ -206,16 +217,18 @@ namespace Lux.API.Controllers
/// Chiamata GET: dizionario stato richieste
/// GET: api/Prod/queue-status/
/// </summary>
/// <param name="id">uid oggetto</param>
/// <param name="envir">Environment della richiesta</param>
/// <returns></returns>
[HttpGet("qstatus")]
public async Task<IActionResult> QueueStatus()
public async Task<IActionResult> QueueStatus(string envir)
{
Stopwatch sw = new Stopwatch();
sw.Start();
Constants.EXECENVIRONMENTS cEnvir = Constants.EXECENVIRONMENTS.WINDOW;
Enum.TryParse(envir, out cEnvir);
Dictionary<string, long> queueStatus = new Dictionary<string, long>();
long numWait = await PService.QueueLen(QueueType.waiting);
long numRun = await PService.QueueLen(QueueType.running);
long numWait = await PService.QueueLen(cEnvir, QueueType.waiting);
long numRun = await PService.QueueLen(cEnvir, QueueType.running);
// simulo status...
queueStatus.Add("waiting", numWait);
queueStatus.Add("running", numRun);