Webservice mit NUSOAP -> zu langer Delay

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Webservice mit NUSOAP -> zu langer Delay

    Hallo Zusammen

    Ich hole Daten von einem Webservice über PHP/NUSOAP ab. Grundsätzlich funktioniert die ganze Geschichte auch.

    Aber nun folgedes Problem:
    Wenn ich den Webservice anspreche, werden im Hintergrund des Webservices die Daten aufbereitet und ich kann diese einwandfrei abholen.

    Dauert das Aufbereiten 20-40 Sekunden, dann erhalte ich die Daten wie es sein sollte. Ist aber der Aufbereitungsprozess im Hintergrund aufwändiger, dann dauert es bis zu 5 Minuten und in der Zwischenzeit wird der Prozess beendet - ich erhalte keine Daten.

    Frage:
    Was kann ich tun, um diese Zeit zu überbrücken? Ich habe gehört, dass dies mit einem asynchronen Webservice zu bewerkstelligen wäre. Aber wo kann ich unter NUSOAP einen asynchronen Webservice konfigurieren?

    Ich wäre froh um jede Hilfe und Idee.... bin am verzweifeln!

    Danke und Gruss
    Booker

  • #2
    Vielleicht solltest Du erst mal set_time_limit() versuchen und die Laufzeit Deines Skriptes verlängern.
    Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

    Kommentar


    • #3
      Habe set_time_limit() ausprobiert, allerdings zeigt das überhaupt keine Wirkung.

      Folgendes mache ich:

      $client = new nusoapclient('.......asmx?WSDL', true);
      $client->setCredentials('login', 'password');
      if ($client->getError()) die("Fehler beim Herstellen der Verbindung zum Webservice!\n");
      $proxy = $client->getProxy();
      $attributes = array('param' => 'blablabla');
      $result = $proxy->irgendeineMethodel($attributes);

      if ($client->fault) {
      echo '<p><b>Fault: ';
      print_r($result);
      echo '</b></p>';
      } else {
      // Check for errors
      $err = $client->getError();
      if ($err) {
      // Display the error
      echo '<p><b>Error: ' . $err . '</b></p>';
      } else {
      // Display the result
      echo "Result:\n";
      print_r($result);
      }
      }

      Die Methode des Webservice liefert mir je nach übergebenen Parameter "param" ein anderes Resultat. Manchmal gehen die Berechnungen nur ein paar wenige Sekunden, meistens aber jedoch Minuten bis eine halbe Stunde.

      Wenn die Berechnungen der Methode nur wenige Sekunden gehen, bekomme ich ohne Probleme die korrekte Ausgabe der Methode zurück. Braucht die Methode jedoch länger, dann bekomme ich einfach einen leeren String zurück OHNE JEGLICHE FEHLERMELDUNG.

      Kann mir jemand helfen???

      Kommentar


      • #4
        Bei set_time_limit() musst Du natürlich noch einen Wert für die Anzahl der Sekunden eingeben, die Dein Skript maximal laufen soll.

        set_time_limit(0) steht für unendlich. RTFM!
        Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

        Kommentar

        Lädt...
        X