Question

Je travaille sur un serveur HTTP à Delphi qui renvoie simplement un ensemble de données XML personnalisé. Je ne suive aucun type de formatage standard, comme le savon. J'ai le système qui fonctionne de manière transparente, sauf un petit défaut: lorsque j'ai un très grand ensemble de données à renvoyer au client, cela peut prendre jusqu'à 2 minutes pour que toutes les données soient transférées. Le serveur HTTP que je construis est essentiellement une API basée sur les données XML autour d'une base de données, implémentant la règle commerciale commune - par conséquent, les demandes sont spécifiques aux données derrière le système.

Lorsque, par exemple, je récupére un grand ensemble de données de produit, je voudrais décomposer cela et le renvoyer pièce par morceau. Cependant, une seule demande HTTP appelle une seule réponse. Je ne peux pas nécessairement continuer à nourrir le client avec plusieurs paquets XML différents, sauf si le client le demande explicitement.

Je n'ai aucune gestion de session, mais plutôt une clé API. Je sais que si j'avais des sessions, je pourrais garder un ensemble de données temporairement pour un client, et ils pourraient en demander des morceaux. Cependant, sans gestion de session, je devrais exécuter la requête SQL plusieurs fois (pour chaque morceau de données), et en ce qui concerne les données, les "pages" pourraient être gâchées, ce qui fait que les éléments affichent Sur les mauvaises pages, après avoir navigué vers une autre page.

Alors, comment est-ce généralement géré? Quelle est la méthodologie derrière la rupture d'un grand ensemble de données XML en morceaux pour enregistrer la charge?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
scroll top