2010-12-04 4 views
0

J'ai une application web (asp.net) située sur le serveur web. J'ai besoin d'envoyer des emails de manière asynchrone à partir d'un autre serveur (serveur de tâches) car le serveur web est très chargé. Je prévois de stocker le courrier dans la base de données. Existe-t-il une autre solution ou une solution prête à l'emploi?La meilleure façon d'envoyer un e-mail à partir du serveur dédié

+0

Vous optimisez les mauvaises choses. Je ne pense pas que l'envoi d'un email nécessite plus de CPU que le stockage de l'email dans une base de données. Au moins pas tellement plus que ça l'emporte sur les tracas supplémentaires. Trouver d'autres cols de bouteilles à la place. (L'email de masse est une autre chose cependant) – jgauffin

+0

Pourquoi l'email? Pourquoi pas un type de système de messagerie: MSMQ, Jabber, RabbitMR, etc ... – kenny

Répondre

1

Quelques idées ...

Option 1: (?) Central Database Email

Web App sur le serveur Web écrit courrier électronique à la base de données; L'application "Serveur de tâches" sur une boîte differnet lit la base de données pour les informations de courrier électronique, etc. La base de données est probablement dans sa propre boîte ou avec le serveur de tâches.

Option 2: WCF Queue

WCF permet des liaisons différentes, une file d'attente sur la base de liaison est l'un d'eux. Pour que cela fonctionne, vous devez définir des contrats de service qui ne renvoient pas de valeur à l'appelant (dans votre cas: l'application Web).

Je suppose ici que l'application Web appelait simplement le WCF directement, ce qui remplace fondamentalement le besoin de la base de données - en supposant que tout était là pour ça.

Option 3: Config

De mémoire, vous pouvez juste config votre application pour envoyer des e-mails via un serveur SMTP situé ailleurs - même si je suppose que ce serait synchrone.

Questions connexes