Gestione dei dati dall'app mobile al server: file csv in tempo reale o in batch o un altro metodo?

0

Sto lavorando con un'app mobile di terze parti che ha due metodi per trasmettere dati ...

  1. Tempo reale tramite richiesta POST - ogni richiesta POST è una riga di dati al secondo. Questo sarà per forse 5 minuti ad ogni esecuzione dell'app.
  2. file CSV

Sono riuscito a impostare un file php per ottenere i dati dalla richiesta POST e preferisco questo metodo, ma non sono sicuro che sia una buona idea. Devo memorizzare i dati in un database (penso Amazon Dynamo) e non ho davvero bisogno che i dati siano in tempo reale. Alla fine voglio creare un'app che gestisca il trasferimento dei dati in un modo più preferito e per il mio caso d'uso specifico, ma non so ancora quale sia il modo ideale.

POST

Se sto catturando i dati (non è necessario essere php / probabilmente scriverò qualcosa in Javascript / Nodejs) ...

  1. Sarà un problema che gli inserimenti si verificano in ogni richiesta POST?

Penso che sia necessaria una connessione al database per ogni richiesta POST in modo che possa rallentare.

  1. Ci possono essere problemi quando ci sono più utenti nello stesso momento in cui inviano dati quando utilizzano l'app?

Ogni utente può essere identificato dal suo ID dispositivo in modo che la correttezza dei dati non dovrebbe essere un problema e la concorrenza dovrebbe essere ok sul database

CSV

L'altra opzione è un file CSV, che per ora va bene, ma l'invio del file è manuale. Vorresti che l'utente fosse libero in termini di invio dei dati. Significa che l'unica opzione sarebbe usare POST?

    
posta pad11 08.07.2018 - 22:49
fonte

1 risposta

0

POST sarà lento. Per un tempo reale, è meglio usare websocket wiki

GET è un po 'più veloce di POST . Si può prendere in considerazione l'uso di ottenere per una piccola quantità di dati e soprattutto per molte piccole richieste. link

Il database è probabilmente un collo di bottiglia in questo scenario. È possibile dividere gli utenti di UserID o DeviceID per ridurre il carico del database.

Oppure potresti prendere in considerazione il salvataggio dei dati nella coda basata sulla memoria veloce e salvarla nel database un po 'più tardi. In questo caso, non sarebbe una vera applicazione in tempo reale ma potresti sopravvivere a un traffico più elevato.

    
risposta data 12.07.2018 - 18:17
fonte

Leggi altre domande sui tag