WebMethode abbrechen

23/09/2008 - 09:47 von Sam Gasser | Report spam
Hallo zusammen

Ich haben einen WebService gebaut, in welchem ich Emails verschicke.
Der Ablauft wird via WebMethode gestartet und kann dann je nach Anzahl
Empfànger mehrere Minuten dauern. Nun ist das Problem aufgetaucht,
dass, wenn man versehentlich auf den "Senden" Button in der Web-
Applikation drückt, keine Möglichkeit mehr hat, den Versand
anzuhalten. (Zumindest nicht aus der Applikation selbst).
Also wollte ich zu der "Senden" Funktion auch noch eine "Abbrechen"
Funktion zur Verfügung stellen. Ich habe also im WebService eine
globale bool Variable erstellt, welche default auf "false" ist. In der
Mail-Methode wird dann, vor dem verschicken der jeweiligen Mails diese
Variable geprüft und nur verschickt, wenn die Variable auf "false"
steht. Dann habe ich eine 2. WebMethode erstellt, welche ganz simpel
den bool Wert von false auf true stellt. Es sollten dann also keine
Mails mehr verschickt werden.

Ich habe dies dann auch getestet, als ich aber die Abbrechen Methode
aufgerufen habe, ist nichts passiert, und die Mail wurde vollstàndig
verschickt.. Ist so ein Abbruch überhaupt realisierbar? Oder bin ich
hier völlig aufm falschen Weg?

Vielen Dank für hilfreiche Denkanstösse

Gruss
Sam
 

Lesen sie die antworten

#1 Christian Stüben
23/09/2008 - 12:49 | Warnen spam
Hallo Sam, jeder Aufruf einer WebMethod hat seine eigene Umgebung. Wenn Du
in einem Aufruf die "globale Variable" auf false setzt, ist sie nur in
diesem einen Aufruf global false.

Du solltest evtl. eine Dummy-Datenbank einführen. Und dort in einem Feld
"abbruch" führen, ob weitere Emails verschickt werden.
Wenn die Datenbankzugriffe den Versand stark verlangsamen, vieleicht nur bei
jedem zehnten, fünfzigsten, hundersten Email die Datenbank wieder abfragen.
Besser verzögert als gar nicht abbrechen.
Einen "benutzerid" solltest Du auch in der Datenbank mitführen, nicht daß
User X alle gerade laufenden Jobs abbrechen kann.

mfg Chris

Ähnliche fragen