J'ai besoin de créer une liste d'email en envoyant à beaucoup d'email. quelle est la meilleure solution en mvc pour appeler le fonctionnement à long terme? mieux avec l'exempleasp.net mvc longue opération
Répondre
Je vous suggère d'enregistrer les messages que vous souhaitez envoyer dans un DB par exemple, ainsi que les bénéficiaires. Ensuite, vous pouvez utiliser un planificateur (comme Quartz.NEt) qui vérifie toutes les minutes (par exemple) s'il y a des emails à envoyer et dans le cas où il y en a, il envoie jusqu'à 10 mails à chaque fois.
Si vous pouvez utiliser ASP.NET MVC2, j'utiliser la nouvelle Asynchronous Controller
pourquoi a-t-il été rejeté? –
Je n'ai pas voté en bas mais je peux voir pourquoi quelqu'un l'a fait: L'envoi de beaucoup de courriels dépasserait facilement la limite de temps avant l'expiration du navigateur, donc cela n'aide vraiment pas dans ce cas.Le contrôleur asynchrone permet d'utiliser les threads de manière plus efficace sur un site «stressé», mais n'aide pas si une demande prend plus de temps que le navigateur est prêt à attendre. –
Vous ne souhaitez pas exécuter de processus longs comme celui-ci sur votre serveur Web. Vous voulez une application "backoffice" pour gérer l'envoi de courriels et de réponses. Ecrivez une autre application qui s'exécute sur un autre ordinateur. Avoir lu les informations nécessaires de la base de données et envoyer les emails. Si vous envoyez des e-mails, vous devrez également gérer les réponses. Cette application de backoffice devrait gérer les deux.
probablement vous devrez effectuer les opérations suivantes: -
- Créer une file d'attente où vous pouvez mettre emplois pour exécuter
- Créer un service qui traite cette file d'attente
- signaler Peut-être que les progrès de la service retour à l'application du site Web
- Peut-être signaler le retour à l'utilisateur de l'application Web soit à la page r eFresh ou plus dynamiquement en utilisant Ajax
Quelques options pour chacun de ces éléments: -
1) Options pour la file d'attente comprennent une en file d'attente de mémoire de file d'attente <>, une file d'attente stockées dans une base de données, un MSMQ , une file d'attente distante comme la simple file d'attente de messages d'Amazon. Le choix que vous avez choisi dépendra de la tolérance à la panne que vous voulez que la solution soit, si vous voulez redémarrer après une panne, et si vous avez besoin de distribuer le travail à plusieurs serveurs.
2) Les options du service incluent un thread dans votre application Web ou un service NT. Encore une fois cela dépendra de vos besoins en matière de tolérance aux pannes et de redémarrage.
3) La manière dont vous rapporterez la progression dépendra du type de file d'attente que vous utiliserez. Pour MSMQ, vous pouvez avoir des messages 'corrélés' qui reviennent dans l'autre sens. Pour une file d'attente de base de données, vous pouvez marquer la progression dans la base de données. Vous pouvez également appeler un service Web sur l'application Web pour signaler les progrès.
4) Si vous souhaitez qu'une barre de progression dynamique (ou similaire) s'affiche à l'utilisateur pendant la progression du travail, vous pouvez implémenter un service Ajax qui transmet les informations de progression du serveur au navigateur. Pour l'envoi de messages électroniques, je recommande d'utiliser une base de données comme file d'attente car vous voudrez probablement les suivre sur une longue période et marquer les e-mails non distribuables, les e-mails lus, etc. dans votre base de données.
- 1. Délai de requête IIS sur une opération ASP.NET longue durée
- 2. Messages de pompe pendant une opération longue
- 3. Exécuter une longue opération en JavaScript?
- 4. Comment effectuer une opération PostBack dans ASP.NET MVC?
- 5. Indicateur occupé pendant une opération de dessin d'interface Wpf longue
- 6. Comment afficher gif animé pendant une opération asynchrone longue?
- 7. Actualiser le formulaire pendant une opération synchrone de longue durée
- 8. WCF et une opération plus longue après l'exécution d'un service
- 9. Asp.net Crawler Webresponse Opération expirée
- 10. Quelle est la meilleure façon de maintenir une page ASP.NET jusqu'à la fin d'une opération de longue durée?
- 11. Tâche longue ASP.NET se bloque d'autres pages?
- 12. C++ longue longue manipulation
- 13. asp.net mvc - fournisseur d'appartenances
- 14. ASP.NET Multithreadthing et temporisation des opérations de longue durée
- 15. ASP.NET MVC Architecture
- 16. ASP.NET MVC: UpdateModel est-il une opération "coûteuse" (due à Reflection)?
- 17. Je veux suivre chaque opération insert/update/delete sql dans mon CMS ASP.Net MVC
- 18. Comment diviser longue chaîne par saut de ligne en vue asp.net mvc modèle
- 19. Comment effectuer des requêtes AJAX à interrogation longue dans ASP.NET MVC?
- 20. Routage personnalisé ASP.NET MVC Longue route personnalisée ne clique pas dans ma tête
- 21. Très longue durée XmlHttpRequest
- 22. Crystal Reports dans ASP.NET MVC
- 23. Question stupide: où placer le curseur d'attente dans une longue opération dans le modèle MVP?
- 24. nhibernate terrier et ASP.Net MVC
- 25. Opération Spring MVC et Ajax à l'aide de JQuery
- 26. Authentification OpenId ASP MVC avec expiration longue durée
- 27. asp.net mvc -
- 28. asp.net MVC
- 29. Vérification, opération réussie après toute opération LinqToSql
- 30. ASP.NET MVC vs ASP.NET 4.0
c'est un hébergement virtuel, j'ai besoin d'une solution exactement là-dessus, mais il permet seulement asp.net – kusanagi