Déterminer synchrone vs. asynchrone dans les applications Web
Question:
J'ai été dit que les meilleures pratiques des états de cette longue course http demandes web devrait être plus courte des requêtes asynchrones avec un mécanisme de vote pour l'achèvement.
Pourquoi?
Distinction Importante:
Je suis en train de travailler sur une API de service web. Il n'est pas destiné à être appelés par les navigateurs (ce qui aurait pour effet de bloquer sur le chargement), mais par de riches clients qui appellent les services à distance en mode asynchrone de toute façon) et les scripts (qui peut faire la même chose asynchrone truc)
Motivation:
J'aimerais savoir parce que je suis en train de prendre des décisions quand une demande doit être faite asynchrone, ce qui est le point de coupure? Je suis en train de travailler sur une API basée sur le web qui a des demandes qui prendre n'importe où à partir de 0.001 secondes à 400 secondes (et partout entre les deux) en fonction de la demande (pas de paramètres mais la méthode qu'il appelle).
J'ai pu faire tout ce asynchrone (sauf pour le sondage pour la fin de commande) mais cela complique le travail effectué par les clients API (c'est à dire l'obtention de résultats de demandes, les bureaux de vote pour l'achèvement, etc.)
Autant que je sais que je pourrais aussi faire tout ce synchrone depuis la même quantité de travail est fait de toute façon il semble donc que la charge sera similaire.
En outre, tous les services web que j'ai utilisé semblent suivre un modèle hybride de sorte qu'ils doivent être la prise de décision en quelque sorte.
La seule façon que je puisse vraiment répondre à cette question est de savoir pourquoi les bonnes pratiques.
source d'informationauteur Pace | 2011-05-11
Vous devez vous connecter pour publier un commentaire.
Des Api asynchrones ne se bloquent pas. Chaque appel synchrone attend et blocs pour vos résultats de revenir. C'est juste un thread en sommeil et le gaspillage de calcul.
Si vous avez besoin de quelque chose, envoyez une requête asynchrone et de poursuivre le calcul lorsque la demande de retour. Cela signifie que votre fil est inactive et peut prendre d'autres travaux.
Requêtes asynchrones est la façon de s'adapter à des milliers d'utilisateurs simultanés.
C'est juste une question de conception d'API. Généralement, vous pouvez appeler votre API web avec un callback pour gérer cela. Aucun bureau de vote est requis.