Wie de wir versenden 5000 E-Mails pro Stunde mit actionmailer in ruby on rails?
Ich habe einige Fragen über ActionMailer :
-
Wie funktioniert Actionmailer eine Verbindung zu einem smtp-server ?
-
Sind die verbindungen gleichzeitige oder parallele, wenn die Anzahl der E-Mails, high > 1000 ?
-
Wie E-Mails versenden, wie facebook funktioniert ( 1000 in zahlen ) als sofort-E-Mails betreffen, die ruby on rails-Anwendung und wie würde actionmailer umgehen ?
-
Jede andere Lösung/plugin zu senden große Anzahl E-Mails aus einer RoR-Anwendung neben ActionMailer?
------------------------------------------------Hinzugefügt :
Wir müssen zu senden, mindestens 1000 E-Mails pro 15 Minuten . Wir sind mit einem Notes Domino-server als unseren smtp-server .! was ist die mögliche Architektur für diese Art von problem. Wir sind bereits die Speicherung der E-Mails in der Datenbank, um Sie später zu senden , aber was benötigt wird, ist die senden Ansatz !
- Sicherlich ist dies ein Duplikat ist. Suche ALSO.
- Heh, das ist ein 'uh-oh' Frage
;-)
. Vielleicht bekommen Sie einen Dritten sender, es zu tun, wie SendGrid? - Gleichzeitige ODER parallele? Sind Sie unterschiedlich?
- Diese Frage sollte erneut mit dem Titel an: "Wie Stellen Sie sich 5000 Menschen zu Hassen, die Sie Mit ActionMailer"
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die übliche Sache ist, erstellen Sie einen hintergrund-job zum versenden. ActionMailer ist sehr gut für die einzelnen E-Mails, aber nicht dazu neigen, ärger nach dem senden mehrere E-Mails, denn jeder kann mehrere Sekunden in Anspruch nehmen. Das ist, warum ich erstellt PostageApp zu helfen, lösen diese Probleme.
Einige Dienste auf den Markt, um Ihnen helfen, senden viele E-Mails von Schienen:
Alle diese Möglichkeiten haben, senden Sie mehrere Nachrichten mit einem einzigen API-Aufruf oder SMTP-Transaktion.
1) Actionmailer eine Verbindung zu Ihrem smtp-server über eine Reihe von Parametern, darunter einen host, port und Protokoll.
3) Der Effekt einer langsamen Website als Ergebnis der vielen die synchrone Aufgaben, die ausgeführt werden.
2 & 4)
Actionmailer ist ein bisschen zu langsam zu werden, senden Sie eine Tonne von E-Mails unter Last, denken Sie daran, dass es eine synchrone operation und als solche die nicht wirklich die Art von Sache, die Sie wollen, zu tun, eine Menge auf einem belebten Ort.
Um ehrlich zu sein, sind Sie besser dran, nicht senden, die Menge der E-Mail von Ihrer website. Es ist nicht wirklich entwickelt, um verwendet werden, in einer Weise. Wenn ich hatte zu senden, dass diese Art der Lautstärke würde ich schauen, macht die Arbeit im hintergrund, so etwas wie Verzögert Job gut funktionieren würde, hier oder in einem der zahlreichen async Schienen Mailer gefunden hier würde den trick tun.
Was Sie wirklich wollen, schauen Sie hier ist die Voraussetzung, dass Sie versuchen zu erfüllen, ist es absolut notwendig, dass die Webseite verantwortlich für das senden der E-mail in einer synchronen Mode? In den meisten Fällen die Antwort auf diese Frage ist Nein. Wenn Sie können, werden Sie viel besser zurückstellen dieser Art von Aufgabe zu einem anderen Teil des Systems, halten Sie Ihre Website so schlank und konzentriert wie möglich.
Einfache Lösung für Sie...
Sidekiq oder Resque
Würde ich sehr empfehlen, Sidekiq, da es nicht in der Nähe, die als server-intensiv für den Betrieb mehrerer Arbeitnehmer für dieses nur vorsichtig sein mit der concurrency-Probleme (stellen Sie sicher, dass Sie nicht haben, 2 Arbeiter abholen, die den gleichen job und senden Sie doppelte E-Mails, dass ist).
Sagen, Sie stellen 20 Sidekiq Arbeiter, jeder sollte in der Lage sein, eine E-Mail senden alle 2-4 Sekunden, Sie suchen bei einem einfachen 300-600 pro minute.
Versuchen Sie NICHT, dies zu tun, ohne hintergrund-Arbeiter wie Sidekiq, Resque, oder DelayedJob. Sie frieren die ganze app, wenn Sie versuchen, das senden in der app mit allen großen Menge von E-Mails. Auch senden E-Mails Aktivierung in der app und was nicht wird führen, dass Sie unnötige slow-down-Probleme.
Ich würde ein Arbeiter, der verarbeitet die queueing-regelmäßig und ein weiteres Worker-Klasse, die Griffe, die Sie senden. Wir sind mit Resque (6 Arbeiter vielleicht?) für diese, auf eine ältere app (pre-sidekiq) zum senden von rund 500 E-Mails alle 5 Minuten ohne Probleme.
Können Sie immer verwenden eine Dritte Partei, wie jemand erwähnt. Sendgrid ist anständig. Aber das war nicht die Frage, das ist, wie Sie es selbst tun, einfach und unkompliziert.
Definieren Sie die SMTP-Einstellungen in einer config-Datei, wenn leer gelassen, benutzt es sendMail lokale
gleichzeitige
mehrere Handler
Ist es eine Massen-E-Mail-plugin für Rails-apps?
können Sie auch 1000.Mach mal E-Mail.liefern, aber es wird wahrscheinlich zusammenbrechen ur server