locked
Asynchrone Verarbeitung in einem Webservice RRS feed

  • Frage

  • Hi Leute,

    ich möchte ein Webservice entwickeln der für den Anfang nur eine Funktion haben soll, die mir eine Liste von Objekten in JSON zurückliefern soll. Diese Anforderung kann ich soweit auch umsetzen.

    In der Web-Service-Funktion wird eine Funktion aufgerufen die schon 5-10 Sekunden dauern kann. In der Consumer-App kann/werde ich für diese Zeit eine "Wird geladen"-Message anzeigen.

    Meine Frage ist, was passiert wenn jetzt mehrer Clients auf diesen Service zur gleichen Zeit zugreifen würden? Wird die Funktion nur von dem ersten Aufrufer verarbeitet und ist solange blockiert oder kann WCF/IIS mehrere Anfragen parallel verarbeiten?

    Meine Idee war, dass beim Eintritt in die Webservice-Funktion die darin aufgerufene Funktion Asynchron ausgeführt wird. Damit blockiere ich die Hauptfunktion nicht für andere Clients. Aber wie bekomme ich nach Abschluss der Asynchronen-Funktion die Ergebnisse an die App zurückgeliefert (da ich während dessen ja schon lange außerhalb der Webservice-Funktion bin!)?

    Ich hoffe ich konnte meine Frage/Problem einigermaßen verständlich beschreiben und ihr könnt mir ein wenig Klarheit geben bzw. mich auf Vorgehensweise bei solchen Problemen hinweisen.


    Gruß
    Rudolf

    "Der Nachteil der Intelligenz besteht darin, dass man ununterbrochen gezwungen ist, dazuzulernen." Georg Bernhard Shaw



    Dienstag, 11. September 2012 07:23

Antworten

Alle Antworten

  • Hallo Rudolf,

    es gibt ein sehr schönes Beispiel von Ron Jacobs. Vielleicht hilft Dir das weiter:

    How to: Implement and Consume a WCF Asynchronous Service Operation

    http://code.msdn.microsoft.com/How-to-Implement-a-WCF-2090bec8

    Schöne Grüße

    Oliver

    Dienstag, 11. September 2012 08:05
  • Hallo Oliver,

    vielen Dank, dass sieht sehr gut aus. Ich werde es heute Abends ausprobieren und dann den Thread auf Erledigt setzen.

    Solange kann ja vielleicht jemand die ersten beiden Fragen beantworten.

    1. Meine Frage ist, was passiert wenn jetzt mehrer Clients auf diesen Service zur gleichen Zeit zugreifen würden?

    2. Wird die Funktion nur von dem ersten Aufrufer verarbeitet und ist solange blockiert oder kann WCF/IIS mehrere Anfragen parallel verarbeiten?


    Gruß
    Rudolf

    "Der Nachteil der Intelligenz besteht darin, dass man ununterbrochen gezwungen ist, dazuzulernen." Georg Bernhard Shaw


    Dienstag, 11. September 2012 09:07
  • Hallo Oliver,

    vielen Dank für den sehr hilfreichen Link. Habe mal zum Test einen Webservice so aufgebaut und es funktioniert super. 


    Gruß
    Rudolf

    "Der Nachteil der Intelligenz besteht darin, dass man ununterbrochen gezwungen ist, dazuzulernen." Georg Bernhard Shaw

    Mittwoch, 19. September 2012 22:13