namespace EgwCoreLib.Lux.Data.Services.General
{
///
/// Interfaccia servizio produzione
///
public interface IProdService
{
#region Public Methods
///
/// Richiesta di esecuzione di un job di tipo Balance
///
/// Cod job
/// Dati bilanciamento
/// True se elaborato con successo
Task BalanceJobAsync(string codJob, BalanceReqDto balData);
///
/// Accoda una richiesta di calcolo
///
/// Tipo richiesta
/// UID richiesta
/// Richiesta completa
/// True se accodato con successo
Task EnqueueRequestAsync(string reqType, string reqUid, CalcRequestDTO currRequest);
///
/// Restituzione singolo Job specifico dalla coda ORDINI
///
/// Environment richiesto
/// ID Job
/// Job serializzato
Task GetJobAsync(EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS cEnv, string id);
///
/// Restituisce il contenuto della prossima richiesta da eseguire x Environment
///
/// Environment richiesto
/// Tipo coda (default waiting)
/// Richiesta serializzata
Task GetNextAsync(EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS cEnv, ProdQueueType qType = ProdQueueType.waiting);
///
/// Numero di Job in attesa su coda x environment e tipo
///
/// Environment richiesto
/// Tipo coda (default waiting)
/// Lunghezza coda
Task QueueLenAsync(EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS cEnv, ProdQueueType qType = ProdQueueType.waiting);
///
/// Restituisce elenco corrente delle richieste x environment e tipo
///
/// Environment richiesto
/// Tipo coda
/// Elenco di UID in coda
Task> QueueListAllAsync(EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS cEnv, ProdQueueType qType);
///
/// Reset coda del tipo richiesto...
///
/// Environment richiesto
/// Tipo coda
/// True se resettato con successo
bool QueueReset(EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS cEnv, ProdQueueType qType);
///
/// Reset coda del tipo richiestoversione Async...
///
/// Environment richiesto
/// Tipo coda
/// True se resettato con successo
Task QueueResetAsync(EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS cEnv, ProdQueueType qType);
///
/// Rimette un run un singolo job eliminando da coda Run e mettendo in coda waiting
///
/// Environment richiesto
/// Cod Job da resettare
/// True se resettato con successo
Task ReRunJobAsync(EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS cEnv, string codJob);
///
/// Reset coda running (riaccoda job su waiting)...
///
/// Environment richiesto
/// True se resettato con successo
Task ResetRunningAsync(EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS cEnv);
///
/// Verifica un job in una coda, se trovato lo "avanza" a fatto
///
/// Environment richiesto
/// Chiave da cercare x avanzarla
/// Coda di default a run --> done
/// True se avanzato con successo
Task SetDoneAsync(EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS cEnv, string codJob, ProdQueueType qType = ProdQueueType.running);
///
/// Esegue avanzamento nella coda logica tra wait/run/done se possibile...
///
/// Chiave hash del contenuto richiesta RUID
///
Task UpdateQueueAsync(EgwMultiEngineManager.Data.Constants.EXECENVIRONMENTS cEnvir, string hashKey);
#endregion Public Methods
}
}