Stiamo sviluppando un sistema per il mercato al dettaglio e le sue funzionalità consentiranno ai clienti (in realtà club dei consumatori) di esaminare tutte le transazioni effettuate dai clienti finali.
Uno dei modi per ottenere queste informazioni sarà tramite un'API.
L'idea è che ci saranno richieste di rapporti con una data di inizio e una data di fine, e una risposta avrà tutte le transazioni tra quelle date.
Ci preoccupiamo che alcuni report siano molto grandi e che alcuni client richiedano ripetutamente rapporti, in questo caso il DB e la CPU saranno molto sovraccaricati.
Lo stesso server che gestirà queste richieste si occuperà anche delle transazioni al dettaglio effettive (ricevute dai dispositivi proprietari) e dell'applicazione Web.
Non siamo sicuri su come limitare le richieste di report dall'API in modo che non influiscano troppo sul sistema.
Quindi, come dovremmo affrontare questo scenario? qualche pensiero?
EDIT:
solo per chiarire: Quando ho menzionato i dispositivi proprietari intendevo i dispositivi "On-Location" che vengono utilizzati durante le vendite con i client finali, questo significa che queste richieste non dovrebbero essere ritardate, e questa è la preoccupazione principale.
Ancora una domanda: alcune persone hanno suggerito l'uso di thread con priorità, ovvero dando una priorità inferiore ai thread che recuperano i report, è una buona idea?