Sono nuovo nello sviluppo dei server, e sto cercando di capire dove la divisione delle responsabilità è per le attività ad alta intensità di dati, sto usando Node.js.
Ad esempio, dico che sto creando un'applicazione a singola pagina:
- Il client esegue il rendering di una mappa con popolazione per area
- Il server gestisce le richieste per i dati sulla popolazione
Tuttavia, supponiamo che anche io non sia il proprietario dei dati, ma che lo raccolgo da una terza parte tramite un'API. Questa API mi fornisce semplicemente un elenco di persone e la loro posizione. Dovrò sfogliare ogni persona, raggrupparli in base alla posizione, sommarli e quindi archiviarli in modo che possano essere accessibili ai fini dell'applicazione. Questo processo non ha bisogno di essere fatto tutto il tempo, dal momento che la popolazione non cambierà continuamente, ma diciamo che aggiorno questo set di dati una volta al giorno.
La mia domanda è mettere questo processo sul server sembra che sarebbe abbastanza intenso da rallentare le richieste. Vedo alcune opzioni, ma non sono sicuro quale sarà utilizzato in un ambiente di sviluppo professionale / essere più efficiente.
Potrei:
- Invia al client i dati non elaborati e possono eseguire da soli l'analisi, ma l'esperienza dell'utente rallenta a tutti i livelli
- Il server esegue l'elaborazione sullo stesso thread e una volta al giorno il server rallenta
- Genera thread di lavoro sullo stesso server per gestirlo (scoraggiato?)
- Avere un terzo server completamente separato, che il mio server principale ping una volta al giorno per elaborare i dati e restituirli.
C'è un altro modo per farlo, di cui non sono a conoscenza, oppure uno di questi metodi è una pratica migliore?