Quand les contrôleurs asynchrones doivent-ils être utilisés dans ASP.NET MVC ?
Les actions asynchrones dans ASP.NET MVC peuvent offrir des avantages en termes de performances en libérant threads, en particulier sur les applications serveur où la principale préoccupation est la mise à l'échelle. Cependant, il est essentiel de comprendre quand l'utilisation d'actions asynchrones est appropriée et quelles sont les limites potentielles.
Considérations relatives aux performances
Les actions asynchrones ne :
Scénarios appropriés
Il est recommandé d'utiliser des actions asynchrones lors de l'exécution d'opérations d'E/S , car ils permettent au thread de requête d'être libéré pendant que les tâches d'E/S se terminent en arrière-plan. Cependant, l'utilisation de l'asynchrone pour les méthodes liées au processeur est déconseillée.
Requêtes de base de données
Vous pouvez utiliser les méthodes attendues fournies par votre ORM pour interroger la base de données de manière asynchrone. Notez toutefois que les requêtes asynchrones peuvent ne pas offrir d’avantages en matière d’évolutivité dans tous les scénarios. Si le backend de la base de données peut évoluer et qu'IIS constitue le goulot d'étranglement de l'évolutivité, les requêtes asynchrones peuvent améliorer les performances.
Mots clés d'attente multiples
Vous pouvez utiliser le mot clé d'attente plusieurs fois dans une méthode d'action unique pour effectuer plusieurs opérations asynchrones. Cependant, il est important de prendre en compte les limitations de l'ORM, telles que la règle d'une opération par connexion d'EF.
Considérations relatives à l'évolutivité
Bien que les actions asynchrones puissent libérer des threads, elles n’améliore pas directement les délais d’exécution des demandes. De plus, ils peuvent augmenter la charge de travail sur votre base de données si le backend fonctionne déjà à pleine capacité. Par conséquent, il est crucial d'évaluer l'évolutivité du backend de votre base de données et l'impact potentiel des requêtes asynchrones sur ses performances.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!