PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mailversand "überschreibt" sich selber



Pirate
10.11.2010, 07:58
Hallo!

Bei meinem Meldungsversand mit Poc32 schreibe ich die Meldung zuerst in eine Textdatei, dnach wird diese Textdatei mittels asiasci.exe in eine andere Textdatei umgewandelt und diese dann mittels cssmtp.exe verschickt.

Das Problem ist nun folgendes. Der Versand der Meldung dauert ca 2-3 Sekunden. Ich bekomme eine Meldung rein und die Batch wird abgearbeitet. Unmittelbar danach kommt die Meldung ein zweites mal, etwas abgehackt, rein. Während der erste Versand läuft beginnt der zweite Versand und überschreibt die Datei die versendet werden soll. Somit bekomm ich die Meldung nur noch abgehackt raus......

Hat irgendjemand eine Idee dazu?

Beatzler
10.11.2010, 09:10
Moin,

bau dir in deine Batch zum schluss bevor diese beendet werden würde eine Wartezeit mit PING oder die elegante Form mit Wait.exe ( google ) ein. Diese muss von der Länge auf dein Auswerteverhalten angepasst werden

//** 10 Sek warten damit nicht öfter / gleichzeitig mehrere Versendungen erfolgen !
C:\POC32\Wait.exe\Wait.exe -t 10000

Am Anfang der Batch musst du dann noch eine Abfrage einsetzen:

//** Hauptabfrage zur Unterdrückung mehrerer Alarmierungen / Versendungen + Unterdrückung Probealarme !
IF EXIST c:\Poc32\Alarmtext\LöschzugSMS.txt ( GOTO EXIT) else ( GOTO PROBE )

Label setzen in der Batch an den jeweiligen Bereichen mittels :PROBE oder :EXIT ( das sind dann die "Sprungmarken" zu denen gegangen wird. )

Wird die Batch ein zweites mal aufgerufen solange die erste Batch das TXT welches den Mailtext verarbeitet noch nicht gelöscht hat erfolgt kein zweiter Alarm und der zweite geöffnete Ablauf wird sofort beendet.

MFG Beatzler

Pirate
10.11.2010, 10:55
Danke!

hast mir ein paar gute inputs gegeben.

ich habe es jetzt folgendermaßen aufgebaut.

:START
if exist c:\mail\busy.txt goto :WARTEN
echo Mailversand_läuft! > c:\mail\busy.txt

=>hier ist der mailversand

del c:\mail\busy.txt
goto :END

:WARTEN
c:\mail\wait.exe 500
goto :START

:END

ich muß das dann noch testen, könnte aber funktionieren, oder?

Beatzler
10.11.2010, 12:46
Hey,

sieht schonmal nicht sooo schlecht aus!

Ich würde das ganze aber ggf. festlegen! Einfach mal POCSAG beobachten und sagen so nach X Sekunden kommt erst der nächste Alarm wieder rein frühestens etc.

Wenn du es so lässt würde nur für die Zeit in der der Mailversand abgearbeitet wird ein neuer Versand unterdrückt.

Ist der Versand fertig und es wird z.B. nochmal der gleiche Alarm kurzzeitig danach ausgewertet ( anderer DAU etc. ) würde der Mailversand direkt nochmal losrennen und auch abgearbeitet werden, um den Fall zu unterbinden:

*Sinngemäß*
--> Start inkl. Abfrage etc.
----> Mailversand
-----> Pause mit fest eingestellter Zeit
------->txt löschen
---------> FERTIG

MFG Beatzler