Ankündigung

Einklappen
Keine Ankündigung bisher.

Laravel Queues und Task Scheduling

Einklappen

Neue Werbung 2019

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

  • #16
    3.

    Nicht public, sonst kann ja jeder das Script nach belieben starten.
    "Software is like Sex, it's best if it's free." - Linus Torvalds

    Kommentar


    • #17
      Ja klar aber der könnte nichts machen. Der worker wird ja einfach den Task ausführen falls einer ansteht.

      Ok die frage wäre nur wenn er den Aufruf früher beendet? Was passiert dann? Läuft das Script im Hintergrung noch weiter? Nicht oder, das wäre ansonsten ein Problem.

      Dann falls public, eben mit einer .htaccess schützen.

      Denn das Problem ist das mein System ein Domain routing hat (falls akitiviert) und je nach Domain andere Konfigurationen hat. Das würde eben wenn public ist es schon lösen.

      Ansonsten muss ich halt den Request (Host) anpassen um auf die richtigen Daten zu gelangen.

      Kommentar


      • #18
        Meinst du jetzt eigentlich das Script, welches von einem Cronjob aus gestartet wird, oder einen Background Worker?

        Solche Scripts werden für eine Konsolenausführung programmiert und nicht für den Aufruf vom Client. Wie du schon richtig erkannt hast, könnte der Client die Anfrage abbrechen, was zu einem Abbruch des Scripts führt (außer du hast entsprechendes in der ini geändert, was aber für den Rest der Seite schlecht ist). Auch sonst kann es zu Problemen bezüglich gleichzeitiger Ausführung etc. kommen. Von außen verfügbar sollte nur sein, was auch wirklich für einen Benutzer bestimmt ist.

        Du meinst du hast mehrere Domains auf unterschiedlichen Virtualhosts?
        Für den Cronjob und auch für den Worker ist das ja irrelevant. Der muss nicht wissen wie du intern dein Routing aufgebaut hast. Der muss nur wissen wo er seine Aufgaben herbekommt, wie er diese Lösen soll und was er mit evtl. Ergebnissen machen soll.
        "Software is like Sex, it's best if it's free." - Linus Torvalds

        Kommentar


        • #19
          Meinst du jetzt eigentlich das Script, welches von einem Cronjob aus gestartet wird, oder einen Background Worker?
          Ja das Script welches von einem Cronjob gestarted wird.


          Du meinst du hast mehrere Domains auf unterschiedlichen Virtualhosts?
          Nein, genau das umgekehrte. Falls, so konfiguriert wird je nach Http Host, wieder eine ganze andere "Site" Konfiguration genommen. Somit könnte man mehrere Domains in einem System pflegen, Ähnlich wie bei Dupral.



          Ja wäre mir auch am liebsten die Datei im webroot zu platzieren, was ich nun auch so mache.


          Da ich auch noch nebenbei ein WP Plgin schreibe, (aber bestimmt das erste und letzte), habe ich mir deren Cron mal angesehen. Die haben diesen ja Public und rufen mittels eines neuen Requests eine Datei auf, wo die verhindern, dass das Script unterbrochen wird mit:

          PHP-Code:
          ignore_user_abort(true); 
          Ist denn dies eine Gute Idee?

          Danke auf jedenfall für die Ausführlichen Tips und Erläuterungen. Das hat mir sehr geholfen.

          Kommentar


          • #20
            Wenn jemand weiß, wie er die Cronjobs Public erreichen kann, kann er diese einfach etliche Male aufrufen (auch automatisiert). Durch ignore_user_abort() braucht derjenige dann nichtmal auf die Antwort warten, da das Script komplett ausgeführt wird, egal was der Benutzer macht. Bei Kleinigkeiten fällt das nicht so ins Gewicht. Sobald da aber z.B. API-Abfragen, Filesystem-Aktionen folgen kann das schnell problematisch werden. Also besser außerhalb vom Webroot platzieren.

            Das meinte ich, dafür gibt es ja VirtualHosts, dass auf einem Webserver mehrere getrennte Webspaces eingerichtet werden können. Etwas unvorteilhaft formuliert von mir.

            Bzgl. ignore_user_abort: Für das Script ists gut, da es nicht abgebrochen wird und komplett durchlaufen werden kann. Für den Server kann das aber nicht gut sein, siehe erster Absatz.
            "Software is like Sex, it's best if it's free." - Linus Torvalds

            Kommentar


            • #21
              Hey danke dir nochmals JaMa, wirklich sehr nett von Dir.

              Ich werde auf jeden Fall die Datei ins webroot platzieren.

              War aber dennoch neugierig, wie z.B. Dupral das macht. Die benutzen jedoch eine öffentliche Adresse mit einem Schlüssel wie:

              http://www.example.com/cron.php?cron...NUBZILLA0Nf1Re




              Aber ok für mich ist nun alles klar. Danke allen nochmals.

              Kommentar

              Lädt...
              X