Schrift
[thread]2941[/thread]

Im Hintergrund eMails versenden ohne dass ...



<< >> 4 Einträge, 1 Seite
Gast Gast
 2005-06-09 19:30
#29509 #29509
Hallo zusammen,
ich programmiere gerade ein eigens Forum und habe dabei folgendes Problem:
Bei einer Neueingabe eines Beitrags möchte ich im Hintergrund (in einem Sohn-Prozess) eMails/Benachrichtigungen versenden. Es klappt alles ganz gut, nur der Browser-Client wartet auf die Beendigung meines Prozesses.
Nur wenn ich an den Client als Antwort eine neue Location senden, dann beendet der Client die Verbindung zum Server.
Gibt es eine andere Moeglichkeit, dem Client mitzuteilen, dass er nicht auf den Server warten soll?
Danke schon mal fuer alle Infos!
Heromaster
 2005-06-09 20:25
#29510 #29510
User since
2003-08-05
220 Artikel
BenutzerIn
[default_avatar]
Starte einen unabhängigen Perl-Prozess anstatt ein Kindprozess (sofern du die nötigen Rechte dazu hast).
Beispiel:
Code: (dl )
exec '/www/htdocs/mydomain/scripts/sendmail.pl';

Allerdings kannst Du damit dem Client nicht mitteilen, ob das Versenden der Mail erfolgreich war.

Ein anderer Weg wäre, das Versenden der Mail über ein Popup-Fenster zu starten.
Derjenige, der zwei Hasen jagt, lässt einen zurück und verliert den anderen.
betterworld
 2005-06-10 15:30
#29511 #29511
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Exec startet keinen neuen Prozess. fork koennte das tun.

Herbert: Zeig mal bitte den Code, der zurzeit verwendet wird, um die Mail zu verschicken.
J-jayz-Z
 2005-06-16 10:56
#29512 #29512
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Oder du führst es mit system aus und überprüfst die beendigung des Programms mit $?...
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
<< >> 4 Einträge, 1 Seite



View all threads created 2005-06-09 19:30.