Ankündigung

Einklappen
Keine Ankündigung bisher.

Slim

Einklappen

Neue Werbung 2019

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

  • Slim

    Hallo, mit Slim 3 habe ich ein Restful erstellt.

    In routes.php habe ich eine Post Route zum Senden von Daten, erstellt die dann in die Datenbank geschrieben werden. Der Code zur Ausführung befindet sich also hier in der Route.

    In der index.phtml welche sich im Ordner templates befindet, wird instanziert: $app = new \Slim\App($settings);

    Mir ist nun aufgefallen, dass wenn ich mit Postman die Route mehrmals aufrufe dann die einzelnen Aufrufe nacheinander abgearbeitet werden. Da die einzelne Bearbeitung jeweils ziemlich lang dauert, wird der letzte Aufruf eines users zur Geduldsprobe.

    Wie kann ich es anstellen, so dass alle Aufrufe “parallel“ abgearbeitet werden?

  • #2
    Zitat von xman1980 Beitrag anzeigen
    In der index.phtml welche sich im Ordner templates befindet, wird instanziert: $app = new \Slim\App($settings);
    Im Template (index.phtml) wird die App instanziert? Wenn ja, dann ist das definitiv falsch, die App muss unabhängig vom Template instanziert werden.

    Zitat von xman1980 Beitrag anzeigen
    Wie kann ich es anstellen, so dass alle Aufrufe “parallel“ abgearbeitet werden?
    Was wird denn überhaupt abgearbeitet? Wenn das wirklich Aktionen sind die lange dauern und die du nicht mehr optimieren kannst, dann gehört sowas in einen Background Worker, der das unabhängig vom User Request abarbeitet.
    "Software is like Sex, it's best if it's free." - Linus Torvalds

    Kommentar


    • #3
      Danke dir. Soll die Instanzierung in der Datei routes.php erfolgen?

      Kommentar


      • #4
        Zitat von xman1980 Beitrag anzeigen
        Wie kann ich es anstellen, so dass alle Aufrufe “parallel“ abgearbeitet werden?
        Auf die Schnelle, die Anfrage in die Datenbank Speichern und dem User sagen "Bald siehst du hier Content, komm später wieder". Anschließend ein Cron laufen lassen der sich die Anfragen anholt, bearbeitet und aus der Warteschleife löscht.

        Klar gibts da noch andere Technologien die Optimaler dafür sind, aber das wäre so auf die Schnelle machbar
        apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

        Kommentar


        • #5
          Zitat von xman1980 Beitrag anzeigen
          Danke dir. Soll die Instanzierung in der Datei routes.php erfolgen?
          Du wirst doch bestimmt eine index.php haben, auf welche du zugreifst (aber nicht dein Template!). Und dort instanzierst du die App. Erst danach wird der Rest wie Routen und Middlewares geladen.
          "Software is like Sex, it's best if it's free." - Linus Torvalds

          Kommentar


          • #6
            Zitat von JaMa Beitrag anzeigen

            Du wirst doch bestimmt eine index.php haben, auf welche du zugreifst (aber nicht dein Template!). Und dort instanzierst du die App. Erst danach wird der Rest wie Routen und Middlewares geladen.

            Danke ich habe mich vertan. Es ist doch die index.php in den public Ordner, wo instanziert wird.

            Dann ist es so vermutlich ok.

            Kommentar


            • #7
              Zitat von BlackScorp Beitrag anzeigen

              Auf die Schnelle, die Anfrage in die Datenbank Speichern und dem User sagen "Bald siehst du hier Content, komm später wieder". Anschließend ein Cron laufen lassen der sich die Anfragen anholt, bearbeitet und aus der Warteschleife löscht.

              Klar gibts da noch andere Technologien die Optimaler dafür sind, aber das wäre so auf die Schnelle machbar
              Danke, so habe ich es mir auch vorgestellt , wie JaMa als Background Worker bezeichnet hat.

              Das würde ich denn so umsetzen.

              ​​​​​​

              Kommentar


              • #8
                Zitat von xman1980 Beitrag anzeigen


                Danke ich habe mich vertan. Es ist doch die index.php in den public Ordner, wo instanziert wird.

                Dann ist es so vermutlich ok.
                Ja, dann passt das.
                "Software is like Sex, it's best if it's free." - Linus Torvalds

                Kommentar

                Lädt...
                X