Quando l'applicazione non si avvia?

0

Quali sono le migliori pratiche riguardanti l'avvio di un'applicazione che dipende da diversi servizi e forse alcuni elementi del file system come montature, directory o file di configurazione.

Diciamo che la dababase non è attiva o restituisce uno stato di errore all'avvio dell'applicazione. Dovrebbe l'applicazione:

  • non si avvia e segnala questo errore o
  • dovrebbe avviarsi e controllare periodicamente se il database funziona e
    • fornire servizi che sono disponibili senza db (e segnala errori durante la pubblicazione della richiesta db)
    • segnala un errore per qualsiasi richiesta

Per quanto riguarda le dipendenze del file system (ad esempio, roba che non ti aspetti di risolvere velocemente)

Dipende da ogni situazione / funzione / servizio o pensi che ci sia una regola empirica?

    
posta Arkonix 07.07.2017 - 20:37
fonte

1 risposta

1

Come quasi sempre nello sviluppo del software, la risposta è "dipende".

Dipende dai tuoi requisiti di resilienza, dal tipo di risorse che stai cercando di acquisire, dalla disponibilità prevista di tali risorse, ecc. ecc. ecc.

Di solito, due buone linee guida sono Fail Fast e anche Fail Fast , in cui l'applicazione fallisce e si interrompe non appena non è in grado di acquisire la risorsa specificata e punta sul sistema di registrazione o sulla console perché non ha funzionato, dando all'operatore il possibilità di correggere un problema.

Ma cosa succede se stai scrivendo un demone / servizio che viene eseguito in background 24x7 e prova a raccogliere sul Web alcune informazioni da un sito web che è metà giorno e metà giornata in giù?

E l'altra domanda è: cosa succede durante la durata della tua applicazione se una risorsa che si dà per scontata scompare, come la memoria (con diversi OutOfMemoryException in giro) o il database o lo spazio su disco?

A seconda dei requisiti di resilienza della tua soluzione, devi gestire queste condizioni eccezionali di conseguenza.

Un'applicazione unica che viene attivata solo per eseguire un report o scricchiolare alcuni dati e non può connettersi al database all'avvio potrebbe non riuscire velocemente.

Una GUI di applicazioni Web che è il punto di riferimento per il tuo utente dovrebbe gestirlo con garbo per offrire all'utente un'esperienza migliore.

    
risposta data 07.07.2017 - 21:51
fonte

Leggi altre domande sui tag