endlos-script

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

  • #16
    wenn das skript über http erreichbar ist, kannst du einen HEAD absenden.

    Kommentar


    • #17
      jepp, das script ist über http erreichbar...
      was meinst du mit HEAD absetzen? meinst du header() ?
      Konzeption * Development * Marketing
      http://www.hirschfeld-software.info

      Kommentar


      • #18
        nein, es ist ein http request.

        Kommentar


        • #19
          einen dienst zu schaffen oder ein cronjob einzurichten ist zu ungenau
          Unsinn!!
          Ein Dienst oder Deamon ist genau das richtige!!!
          Wir werden alle sterben

          Kommentar


          • #20
            Original geschrieben von e34jenser
            einen dienst zu schaffen oder ein cronjob einzurichten ist zu ungenau da das script nicht immer in der gleichen zeit durchläuft. es soll ja so sein: wenn das script durchgelaufen ist soll es gleich, ohne pause, sofort wieder neu starten. bis ich einen status ändere, dann wird es mit exit() verlassen. und wird dann wieder duch das anschubsen zum laufen gebracht.
            einen Dienst ist genau das Richtige

            - über eine Website gibst du das Startsignal, der Webserver speichert in einer Datei, eine Datenbank, ... diesen Status, und genauso mit Stopsignal
            - der Ablauf des Dienstes könnte wie folg sein
            PHP-Code:
            Start
            Wenn 
            (startstatus)
            {
               
            endlosschleife
               

                  
            tut dies
                  tut das
                  
            ....
                  
            wenn (stopstatusausteigen
               
            }

            Richte den Dienst so ein, dass er minütlich (oder kleiner, größer, je nach Bedarf) einmal läuft, dann ist die Sache gegessen.

            Kommentar


            • #21
              das ist zweifellos die bessere entscheidung. wobei ich mir überlegen würde, ob es nicht reicht, ein socket zu öffnen und an einem exotischen port zu lauschen - dann kann man auf den "start"-signal sehr schnell reagieren. auf jeden fall schneller, als bei busy waiting.

              Kommentar


              • #22
                Das stimmt!
                Dabei wäre eine MultiThread Fähigkeit SEHR hilfreich..
                Und damit ist PHP quasi schon aus dem Rennen!
                Wir werden alle sterben

                Kommentar


                • #23
                  warum? ich finde zwar auch, dass php als daemon nicht geeignet ist, aber - grundsätzlich?

                  Kommentar


                  • #24
                    Bei einem solchen Daemon ist es schön, wenn man einen "worker" Thread hat, welcher die harte Arbeit erledigt.

                    Und für die Komunikation erstmal einen Socket-Listen Thread startet, und dann für jede Verbindung einen einen weiteren Thread nachstartet.

                    Mit einer solchen Konstruktion handelt man recht einfach Mehrfachzugriffe ab. Die großen: Apache, MySQL, IRC, TeamSpeak uvm. handeln das so, oder so ähnlich ab. Nicht ohne Grund. Eignen würden sich dafür C,C++, Java, FreePascal uvm.

                    Um PHP diese Multithread Fähigkeit beizubiegen muß man eine Erweiterung von Hand einkompilieren, oder wild rum forken und mit interprozess Komunikation rumhampeln. Alternativ könnte man noch mit declare() irgendwelche dirty Hacks basteln. Aber das Ganze ist weder elegant, portabel noch sonderlich stabil.

                    Ich habe mich schon daran versucht und ettliche Beißhözchen dabei verschlissen.
                    Nee.. ich kann ein solches Vorgehen nicht empfehlen!!
                    evtl. bin ich auch einfach nur zu blöd dazu
                    Zuletzt geändert von combie; 26.01.2007, 00:15.
                    Wir werden alle sterben

                    Kommentar


                    • #25
                      du hast insofern recht, als dass wir gar nicht wissen, was der gute e34jenser mit dem prozess nun vor hat und i.a. vom schlimmsten ausgehen und von php abraten.
                      Um PHP diese Multithread Fähigkeit beizubiegen muß man eine Erweiterung von Hand einkompilieren, oder wild rum forken und mit interprozess Komunikation rumhampeln.
                      dass das kompilieren (für dich) ein problem ist, nehme ich dir nicht ab. und die kommunikation würdest du doch in jeder anderen sprache gleich bauen - in c mit fork und (unnamed) pipes kann man einfachste kommunikation zwischen vater und kinderprozessen gestalten. in java würdest du auch nur einen neuen thread anlegen. da ist php doch nicht anders: pcntl_fork, pcntl_signal und fsockopen - fertig ist der kleine daemon...

                      Kommentar


                      • #26
                        Ich sage auch gar nicht, daß es unmöglich ist, nur ein gehampel...

                        Mit Java bekommt man das sehr Plattformneutral hin.
                        Selbst mit FreePascal geht es noch relativ gut. Ein paar Kompilerschalter und es läuft unter Win als Dienst und als Linuxdeamon aus den selben Quellen...
                        Mit PHP unter Win ist das schon etwas unerfreulicher (sagt meine Erfahrung)

                        Nun... ich denke, wir sind uns einig, das PHP nicht das optimale Werkzeug dafür ist...
                        Wir werden alle sterben

                        Kommentar


                        • #27
                          Okay, ich danke euch erstmal für all die antworten... ich habe leider noch nicht die lösung meines Problems gefunden...

                          okay, dann erkläre ich euch mal eben was ich grad mache:

                          ich habe eine liste mit domains, die in einer db stehen. das script soll diese domain anpingen ->exec(ping test.de... )<- und den status in eine db schreiben. wenn die domain frei ist soll der status in der db geändert werden. dieses script soll halt den ganzen tag auf dem linuxserver endlos duchlaufen.

                          vielleicht könnt ihr nun besser nachvollziehen was das script erledigen soll.
                          Konzeption * Development * Marketing
                          http://www.hirschfeld-software.info

                          Kommentar


                          • #28
                            Was meinst du mit "wenn die Domain frei ist"?
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #29
                              mit frei meine ich, ob man die domain registrieren kann...
                              Konzeption * Development * Marketing
                              http://www.hirschfeld-software.info

                              Kommentar


                              • #30
                                Aha ... du willst also so'n Kram wie den "Domain-Engel" programmieren, um dir möglichst schnell freigewordene Domains untern'n Nagel zu reissen.
                                I don't believe in rebirth. Actually, I never did in my whole lives.

                                Kommentar

                                Lädt...
                                X