Moin zusammen,
ich habe eine Webseite mit recht hohen User bewegungen. Unter anderen befindet sich doch auch ein Nachrichtensystem.
Immer wenn eine Nachricht erstellt wird wird auch eine E-Mail an den empfänger gesendet ("John Doe hat dir eine Nachricht gesendet").
Leider dauert der E-Mail versand recht lange (1-3 sekunden), daher war meine Idee einfach nur irgendwo ein Flag zu setzen und im hintergrund dann die E-Mails zu versenden. Damit würde der User dann sofort auf die Zeilseite gelangen und müsste nicht erst noch warten bis der Server die Mail versendet hat.
Dazu habe ich mir folgende lösungen ausgedacht:
1.) Über eine Datenbanktabelle:
Ich erstelle einfach eine Datenbanktabelle in der ich den email-typ und de typ-id (mehr brauche ich nicht, da Text und co. separat erstellt werden).
Dann lese ich regelmäßig über runwhen die Daten aus, sende die mails und lösche die Sätze.
2.) Über eine Flag-Datei:
Ich erstelle einfach eine Flag-Datei (bsp. TYP.ID) in einem Verzeichnis. Diese lese ich dann regelmäßig über runwhen (Dateiname reicht, der Inhalt ist leer) sende die mail und lösche die Datei.
Nun weiß ich nicht was besser ist.
Zum einen wäre die SQL Methode bestimmt schneller, jedoch habe ich nur 20 Verbindungen auf dem shared-hoster.
Zum anderen entlaste ich bei Lösung 2 zwar den sql-server, da aber Dateizugriffe in der Regel mit php länger dauern, ist diese Lösung vllt etwas unperformant.
Was meint ihr? Gibt es vielleicht noch eine besser Möglichkeit? Vllt nur eine Datei die ich auslese und dort stehen dann alle TYPen+ID je zeile?
Tjommel
ich habe eine Webseite mit recht hohen User bewegungen. Unter anderen befindet sich doch auch ein Nachrichtensystem.
Immer wenn eine Nachricht erstellt wird wird auch eine E-Mail an den empfänger gesendet ("John Doe hat dir eine Nachricht gesendet").
Leider dauert der E-Mail versand recht lange (1-3 sekunden), daher war meine Idee einfach nur irgendwo ein Flag zu setzen und im hintergrund dann die E-Mails zu versenden. Damit würde der User dann sofort auf die Zeilseite gelangen und müsste nicht erst noch warten bis der Server die Mail versendet hat.
Dazu habe ich mir folgende lösungen ausgedacht:
1.) Über eine Datenbanktabelle:
Ich erstelle einfach eine Datenbanktabelle in der ich den email-typ und de typ-id (mehr brauche ich nicht, da Text und co. separat erstellt werden).
Dann lese ich regelmäßig über runwhen die Daten aus, sende die mails und lösche die Sätze.
2.) Über eine Flag-Datei:
Ich erstelle einfach eine Flag-Datei (bsp. TYP.ID) in einem Verzeichnis. Diese lese ich dann regelmäßig über runwhen (Dateiname reicht, der Inhalt ist leer) sende die mail und lösche die Datei.
Nun weiß ich nicht was besser ist.
Zum einen wäre die SQL Methode bestimmt schneller, jedoch habe ich nur 20 Verbindungen auf dem shared-hoster.
Zum anderen entlaste ich bei Lösung 2 zwar den sql-server, da aber Dateizugriffe in der Regel mit php länger dauern, ist diese Lösung vllt etwas unperformant.
Was meint ihr? Gibt es vielleicht noch eine besser Möglichkeit? Vllt nur eine Datei die ich auslese und dort stehen dann alle TYPen+ID je zeile?
Tjommel
Kommentar