Ich habe ein einfaches Perl-Skript, das als Linux-Daemon mit einer Endlosschleife läuft. Es verbindet sich alle 10 Sekunden mit einer Datenbank, um einen Prozess auszuführen.Wie kann ich verhindern, dass ein Fehler in meinem Perl-Skript das Skript beendet?
while (1)
{
# THIS LINE WILL KILL THE SCRIPT IF IT FAILS
my $DB=DBI->connect("dbi:Sybase:server=myserver","user","password");
. . . do something . . .
sleep (10);
}
Ich habe zwei Fragen:
- Wenn die DB nicht verfügbar ist, wie ich das Skript halten kann ausgeführt werden?
- Kann ich einen Ausnahme-Handler hinzufügen, um mir eine E-Mail zu senden oder einen Fehler zu protokollieren?
Hinweis: Ihr Skript nicht alle zehn Sekunden keine Verbindung. Wenn die durchschnittliche Verbindung 1 Sekunde dauert, verbindet sich Ihr Skript (im Durchschnitt) alle 11 Sekunden. –
Ich werde nicht sagen, ob Sie es nicht tun. :) – SkunkSpinner