API di polling watchlist NoSql vs Sql Frequent Updates

0

Sto facendo un'applicazione di tipo watchlist che otterrà tutti gli oggetti da guardare e quindi eseguirà il polling di un'API ogni dieci minuti circa per verificarne lo stato.

Sto cercando di progettare la parte del database di questo progetto e ho voluto qualche consiglio sulla migliore tecnologia da usare. Sono molto esperto in database relazionali ma ho usato MongoDB per questo progetto.

Quello che sto pensando di fare è avere due tabelle una tabella watch_list e una tabella item_status. Un'applicazione può ottenere un elenco distinto di elementi dalla tabella di watchlist e quindi eseguire il polling dell'api e quindi aggiornare la tabella item_status quando lo desidera, indipendentemente da ciò che sta succedendo con la watchlist, può anche essere multithread con l'API. Se l'API restituisce uno stato reale, è necessario che un'azione venga eseguita. L'altra app richiede semplicemente richieste e inserisce elementi nella tabella Watch_list. Il problema che prevedo è che stiamo memorizzando informazioni che non ci interessano molto nella tabella item_status, cioè una volta che lo stato è vero, allora qualche azione accade e non ci interessa più il lavoro fatto, nessuno può mettere quell'elemento torna in una lista di controllo fino a quando non è di nuovo falso in modo da poter anche solo cancellare quei record.

Questo mi porta all'idea che forse ho solo bisogno di una tabella, che include un flag se lo stato è stato restituito come true e l'azione è avvenuta, così come l'ultima volta che è stata controllata. Solo una ragione Tuttavia, mi piace che martellassi questa tabella con gli aggiornamenti richiamando l'API per controllare se lo stato dell'oggetto è vero, quindi sono preoccupato di scrivere nuovi elementi in questa tabella, inoltre mi piace l'idea che io possa avere un separato entità per il polling e che può essere eseguita solo in background aggiornando la tabella item_status.

Oltre a questo sto cercando di capire quale tecnologia sarebbe la migliore per questi dati, postgres o mongodb sono le mie due scelte preferite, i miei dati sono incredibilmente relazionali quindi trovo difficile pensare a come mongodb fornirebbe un beneficiare. Poiché aggiornerò i campi, vorrei sapere quale tecnologia sarebbe più adatta a questo tipo di progetto.

    
posta Simon Nicholls 12.10.2018 - 12:00
fonte

1 risposta

1

Come per tutte le domande "fai qualcosa quando x succede", la chiave è catturare l'evento in arrivo, piuttosto che guardarne gli effetti.

Nascondi il tuo database dietro un'API, nei metodi di aggiornamento dell'API, verifica le tue condizioni e attiva il tuo evento come richiesto.

La tecnologia del database dietro l'API non ha importanza.

    
risposta data 12.10.2018 - 12:13
fonte

Leggi altre domande sui tag