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