Esecuzione dell'operazione di attesa nell'applicazione Web ASP.NET?
-
12-11-2019 - |
Domanda
Vorrei agganciarmi questo Domanda, tuttavia forse lo riformula da un angolo diverso.
Per scopi anti -frode, vorrei bloccare i visitatori dopo una certa quantità di tentativi di accesso errati. A questo punto ho una classe di manager che avvolge la chiamata della funzione effettiva per l'accesso. Il gestore genera un'eccezione se un visitatore è bloccato e quindi il metodo di accesso effettivo non viene mai chiamato. Fin qui tutto bene.
Ora vorrei cambiare l'eccezione che lancia una parte Thread.Sleep
un po 'di cosa. Questa non è un'opzione, tuttavia perché ciò bloccherà altre richieste al server. C'è un facile alternativa per questo scenario forse usando alcuni async
Aspetta il comando o forse usando F#
?
Codice corrente:
class Manager {
void Execute(Action action) {
if(user.IsBlocked)
throw new BlockedException();
else
action();
}
}
Codice preferito:
class Manager {
void Execute(Action action) {
if(user.IsBlocked)
//Wait for xxx minutes
action();
}
}
Nessuna soluzione corretta