Ho alcuni post precedenti che parlano di come usare python per "fare qualcosa" quando un record viene inserito o cancellato in un database postgres. Alla fine ho deciso di andare con una coda di messaggi per gestire i "lavori" (beanstalkd). Ho tutto configurato e in esecuzione con un altro processo Python che guarda la coda e "fa cose". Non sono davvero un "sistemista" quindi non sono sicuro di quale sia un buon modo per monitorare il processo per assicurarci che non funzioni o che si riavvii e invii una notifica. Google ha dato alcune buone idee, ma ho pensato di chiedere qui potrei ottenere alcuni suggerimenti da persone che sono sicuro che hanno dovuto fare qualcosa di simile.
Il processo è fondamentale per il sistema e deve solo funzionare sempre e, se non funziona, deve essere indirizzato e altre parti del sistema "sono messe in pausa" fino a quando il problema non viene risolto.
I miei pensieri erano di avere solo un cronscript eseguito ogni minuto o due che controlla se il processo è in esecuzione. Se no, lo riavvia. Un altro script (o forse solo un'altra funzione del primo) sarebbe il monitoraggio dei lavori e se i lavori in attesa di essere elaborati colpiscono una soglia specifica per segnalare anche che c'è un problema grave.
Specifiche sul processo ... Il processo aggiorna gli ordini in un sistema legacy con il numero di articoli che vengono spediti o ritirati dal nostro magazzino. Quindi, se queste cose non vengono fatte, quando l'ordine è fatturato avrà qty scorretti e le persone coinvolte non avrebbero un buon modo per individuare questo a meno che non stiano controllando ogni riga. Ho pensato che potrei anche avere una bandiera sull'ordine che dice "sì sono stato toccato" e se non deve semplicemente notificare l'agente di fatturazione.
Questo stesso metodo verrà utilizzato per aggiornare gli ordini con le informazioni di spedizione in base a quando gli ordini vengono spediti da UPS Worldship.
Non lo so, penso di avere una mano su questo, ma si sente semplicemente "kludgy".