Hintergrundscript

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

  • Hintergrundscript

    Ich hab da irgendwie eine Frage die mich seit längerem beschäftigt:

    Ist es möglich am Server im Hintergrund ein Script laufen zu lassen, das mir kontrolliert ob in einer mysql - tabelle, einträge sind, und wenn ja das dieses script ein php-script aufruft?

    Wenn ja wie funktioniert das ganze, wenn nein gibts alternativen dazu.

    thx im voraus
    Seien wir realistisch, versuchen wir das unmögliche. - Chè Guavara

  • #2
    Kuck dir mal die Links an

    http://de3.php.net/manual/de/functio...ist-tables.php
    http://de3.php.net/manual/de/functio...ist-fields.php

    Kommentar


    • #3
      naja da hab ich nur ne funktion in der ich sehe ob ein datensatz drin ist.
      soweit is es ja kein problem, nur die frage ist ob die möglichkeit besteht ein script im hintergrund laufen zu lassen, das den ganzen tag (24 stunden) durchgehend läuft und sobald ein datensatz in der tabelle auftaucht dann ein gewisses script aufruft.
      Seien wir realistisch, versuchen wir das unmögliche. - Chè Guavara

      Kommentar


      • #4
        Willst du das ohne aufruf der I-Net-Seite machen, oder soll das beim Aufruf deiner I-Net-Seite gemacht werden.

        Wenn du das ohne Aufruf machn willst, dann brauchst du einen CronJob.
        Ansonsten bau einfach in deiner Seite ein Script ein, welches das Prüf-Script immer starte wenn ein User auf deiner Seite ist.
        *winks*
        Gilbert
        ------------------------------------------------
        Hilfe für eine Vielzahl von Problemen!!!
        http://www.1st-rootserver.de/

        Kommentar


        • #5
          naja es soll ohne aufruf gehen.

          cronjob geht ja nur im minutentakt oder?

          ich erklärs nochmal im detail:
          das script soll im hintergrund laufen und die tabelle auf einträge prüfen. ich speichere da ne zeitangabe mit und zu dem zeitpunkt den ich da angebe soll ein anderes script dann laufen. sollte also wenns geht sollte das im prinzip auf die sekunde genau funktionieren
          Seien wir realistisch, versuchen wir das unmögliche. - Chè Guavara

          Kommentar


          • #6
            CronJob kannst laufen lassen wann du willst.
            Minutlich
            Stundlich
            Täglich
            Wöchentlich
            Jährlich

            Kommt halt darauf an wie du den einstellst.
            Dazu brauchst aber einen Prvider der dir das ermöglicht bzw. einen Root-Server.
            *winks*
            Gilbert
            ------------------------------------------------
            Hilfe für eine Vielzahl von Problemen!!!
            http://www.1st-rootserver.de/

            Kommentar


            • #7
              Wenn du einen rootserver hast, kannst du auch das script die ganze zeit im hintergrund laufen lassen, und nach selbstbestimmter zeit,
              die datenbank abfragen.

              Pseudocode
              PHP-Code:
                set_time_limit(0);

                while (
              1==1// endloschleife
                
              {
                    
              checke_datenbank

                    
              if (ist was zu tun)
                    {
                         
              tu das
                    
              }

                    
              sleep(solange du möchtest);
                } 
              script tust dann unter linux so starten
              Code:
               nice /usr/local/bin/php -q scriptname.php >logfile &
              und dann läuft und läuft das...

              gruss

              rth
              H I L F E
              GD FreeType Antialising
              Gesuch PHP Entwicklungsumgebung
              ------------------------------------------
              Der Cmabrigde rael tset, sruf whoin du wlilst

              Kommentar


              • #8
                die idee mit der endlosschleife gefällt mir, an das hab ich gar nicht gedacht.

                danke für die hilfe
                Seien wir realistisch, versuchen wir das unmögliche. - Chè Guavara

                Kommentar


                • #9
                  Dir sollte aber schon klar sein, das das die Performec in den Keller zieht. Mach das lieber mit einem CronJob alle 20 Minuten, ist für den Server besser.
                  *winks*
                  Gilbert
                  ------------------------------------------------
                  Hilfe für eine Vielzahl von Problemen!!!
                  http://www.1st-rootserver.de/

                  Kommentar


                  • #10
                    hmm, es gibt doch ein automatisches timeout von php, oder?

                    das müsste man vorher deaktivieren.
                    Dieses Schreiben wurde automatisch erstellt und ist ohne Unterschrift gültig.

                    Kommentar


                    • #11
                      Original geschrieben von TheUser
                      hmm, es gibt doch ein automatisches timeout von php, oder?

                      das müsste man vorher deaktivieren.
                      das bedeutet?

                      ja das problem mit der performance is mir schon klar, aber irgendwie is in meinem kopf die kranke vorstellung das es ziemlich egal ist ob ich jetzt jede sekunde 1-2 datenbankabfragen durchführe oder alle 20 minuten 1500 - 2000. weiß aber eh ned ob das so stimmt.
                      Seien wir realistisch, versuchen wir das unmögliche. - Chè Guavara

                      Kommentar


                      • #12
                        Wie kommst jetzt auf den wert von 1500-2000 DB-Anfragen???

                        Du fragst die DB doch nur einmal ab und läst dann prüfen ob es neue Einträge gibt. Oder verstehe ich da jetzt was verkehrt.
                        *winks*
                        Gilbert
                        ------------------------------------------------
                        Hilfe für eine Vielzahl von Problemen!!!
                        http://www.1st-rootserver.de/

                        Kommentar


                        • #13
                          hmm, es gibt doch ein automatisches timeout von php, oder?
                          hab ich doch

                          PHP-Code:
                          set_time_limit(0); 

                          rth
                          H I L F E
                          GD FreeType Antialising
                          Gesuch PHP Entwicklungsumgebung
                          ------------------------------------------
                          Der Cmabrigde rael tset, sruf whoin du wlilst

                          Kommentar


                          • #14
                            Original geschrieben von Wotan
                            Wie kommst jetzt auf den wert von 1500-2000 DB-Anfragen???
                            sind zurzeit theoretische annahmen die ich aus meinen bisherigen erfahrungen hochgerechnet habe...und es sind keine db-anfragen, sondern datensätze die abgearbeitet gehören.

                            Original geschrieben von Wotan
                            Du fragst die DB doch nur einmal ab und läst dann prüfen ob es neue Einträge gibt. Oder verstehe ich da jetzt was verkehrt.
                            *ja ich frag sie und prüfe ob es einträge gibt die die bedingung erfüllen
                            *wenn ja führ ich ein bestimmtes script aus
                            *wenn nein passiert nichts

                            und das ganze geht dann so weiter, sollte jede sekunde überprüft werden... deshalb ist die idee mit der endlosschleife nicht mal so dumm.

                            nur statt dem sleep(); wär vielleicht ein usleep(); besser mit 5-6 mikrosekunden.

                            denkst du das das der server performancemäßig aushält? ist ja im grunde nichts anderes als wenn jede sekunde eine/mehrere manuelle abfrage(n) geschickt wird/werden, oder?
                            Zuletzt geändert von cheeby; 10.08.2003, 15:25.
                            Seien wir realistisch, versuchen wir das unmögliche. - Chè Guavara

                            Kommentar


                            • #15
                              Durch das nice beim aufruf des scriptes, gibts du dem process ne niedrige
                              priorität. So das normale Prozesse, vorrang haben. Ich mach das bei mir
                              auf dem server mit ein paar scripten parallel, und das klappt wunderbar.

                              Du musst nur aufpassen, das dein script nicht, immer mehr speicher
                              schluckt, also schön die abfrage ergebnis von mysql immer wieder
                              freigeben.


                              nur statt dem sleep(); wär vielleicht ein usleep(); besser mit 5-6 mikrosekunden.
                              für die paar mikrosekunden kannst du es dann gleich sparen, jede abfrage
                              der Datenbank von dir wird wahrscheinlich länger als die 5-6 microsekunden dauern.

                              gruss

                              rth
                              H I L F E
                              GD FreeType Antialising
                              Gesuch PHP Entwicklungsumgebung
                              ------------------------------------------
                              Der Cmabrigde rael tset, sruf whoin du wlilst

                              Kommentar

                              Lädt...
                              X