Ankündigung

Einklappen
Keine Ankündigung bisher.

Laufzeit Frage

Einklappen

Neue Werbung 2019

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

  • Laufzeit Frage

    Guten Morgen!

    Mein Problem:
    Ich habe ein Script, welches jede Sekunde ausgeführt werden muss. Dies soll ebenfalls unter Windows sowie Linux laufen.

    Meine Lösungen (bis jetzt):
    -> Windows: Mit nem grafischen Browser einfach das Script jede Sekunde neu aufrufen (header) oder jeweils nen AJAX Request senden.

    -> Linux: Ich lasse einen Cronjob jede Sekunde laufen. (Ist das überhaupt möglich?)

    -> Beides: Ich lasse ne Bash Schleife laufen die jede Sekunde das PHP Script aufruft und endlos läuft.

    Das was ich vorhab:
    Ich will alle neuen Einträge einer Webseite die gerade dazu gekommen sind auslesen und abspeichern. Diese werden jedoch leider jedoch immer nur 8 mal angezeigt, heißt ich verpasse ggf. welche, wenn ich nicht jede Sekunde eine Abfrage starte, oder gibts dort eine andere Möglichkeit?

    MfG

  • #2
    Ein Script, das jede Sekunde ausgeführt wird, klingt nach einem falschen Konzept. Mal ne Frage: Soll es ein Browsergame werden?

    VG

    Kommentar


    • #3
      Moin,

      nein. Wie gesagt, es soll ein Script werden, das jede XX Sekunden Werte von einer Webseite abfragt. Es gibt jedoch immer nur 8 dieser Werte die angezeigt werden und dies nur für eine bestimmte Zeit, bis der nächste Wert erscheint.

      Kommentar


      • #4
        Was ist denn das für eine Webseite, die du da abfragen willst? Wenn sie dir gehört, würde man das vermutlich darüber lösen, dass neue Werte über eine API gepusht werden an deine andere Seite. Oder eine dauerhafte Verbindung von der Datenquelle zum Verbraucher.

        Alles andere ist irgendwie unnötiger Traffic, da das HTTP auch nicht dafür gedacht ist.
        Btw: Soll ein Script auf deinem Server diese Werte abfragen oder der Browser?

        VG

        Kommentar


        • #5
          Zitat von Comu Beitrag anzeigen
          Moin,

          nein. Wie gesagt, es soll ein Script werden, das jede XX Sekunden Werte von einer Webseite abfragt. Es gibt jedoch immer nur 8 dieser Werte die angezeigt werden und dies nur für eine bestimmte Zeit, bis der nächste Wert erscheint.
          Also jede Sekunde ein Aufruf scheint mir jetzt etwas viel zu sein? Werden wirklich pro Sekunde alle 8 Werte geändert? Oder nur jede Sekunde nur einer, sodass du nur alle 8Sekunden abfragen müsstest. In jedem Fall würde ich da nicht mit sovielen Aufrufen starten, sondern mit nem immerlaufenden Programm im Hitnergrund (Daemon, die laufen aber mWn nur unter Linux)

          Kommentar


          • #6
            Zitat von BR2012 Beitrag anzeigen
            Was ist denn das für eine Webseite, die du da abfragen willst? Wenn sie dir gehört, würde man das vermutlich darüber lösen, dass neue Werte über eine API gepusht werden an deine andere Seite. Oder eine dauerhafte Verbindung von der Datenquelle zum Verbraucher.

            Alles andere ist irgendwie unnötiger Traffic, da das HTTP auch nicht dafür gedacht ist.
            Btw: Soll ein Script auf deinem Server diese Werte abfragen oder der Browser?

            VG
            Die Seite ist nicht in meinem Besitz. Sonst hätte ich das schon lange anders gelöst. Das Script soll die Werte abfragen, obs nun der Server macht oder der Browser ist mir relativ egal.

            Also jede Sekunde ein Aufruf scheint mir jetzt etwas viel zu sein? Werden wirklich pro Sekunde alle 8 Werte geändert? Oder nur jede Sekunde nur einer, sodass du nur alle 8Sekunden abfragen müsstest. In jedem Fall würde ich da nicht mit sovielen Aufrufen starten, sondern mit nem immerlaufenden Programm im Hitnergrund (Daemon, die laufen aber mWn nur unter Linux)
            Die Werte werden unterschiedlich geändert. Meistens ist bei den Werten ein Takt von etwa 10-20 Sekunden für alle 8 Werte drinne. Sollte aber halt eben auch für Windows laufen.

            Kommentar


            • #7
              Du willst dann ~86.000 Requests pro Tag auf die fremde Seite loslassen? Ist das nicht ein bisschen heftig? Ich fände das als Betreiber der Zielseite jedenfalls nicht so prall.

              Kommentar


              • #8
                Wollen ist so eine Sache - ich suche nach alternativen, wie ich es besser machen könnte. Mein Lösungsvorschlag kommt mir als Anfänger so in den Sinn, ich denke genau deshalb gibts das Forum ja, um Erfahrungen auszutauschen

                Kommentar


                • #9
                  Die Frage ist ja, was das für Zahlen sind und warum es so verdammt wichtig ist, diese Zahlen immer sekundengenau zu haben. Was passiert, wenn du die Zahlen mal 2-3 Sekunden lang nicht aktuell hast? Könnte ja mal sein, dass aufgrund von Netzwerk-Problemen ein Request länger dauert oder die Zielseite nicht erreichbar ist. Dafür bräuchtest du auf jeden Fall einen Fallback. Aber solange du uns nicht sagst, was das für Zahlen sind, können wir dir vermutlich auch keine Alternativen nennen

                  VG

                  Kommentar


                  • #10
                    Zitat von Comu
                    ich denke genau deshalb gibts das Forum ja, um Erfahrungen auszutauschen
                    Ja, sicherlich. Uns fehlen bloß so ziemlich die Hintergründe, um über etwaige Alternativen auch nur nachdenken zu können. Aktuell verstehe ich es so: Du willst alle neuen Einträge einer sich schnell verändernden Seite (Twitter-Stream für einen beliebten Hashtag oder so was in der Art) „klauen“, ohne dass der Betreiber das zu wollen scheint, denn eine sinnvolle Schnittstelle besteht ja offenbar nicht.

                    Das riecht so oder so nach Grauzone. Deshalb wäre ich mit Konzepten, die den Fremdserver auch noch unter spürbare Last setzen, extra vorsichtig.

                    Kommentar


                    • #11
                      Zitat von mermshaus Beitrag anzeigen
                      Du willst dann ~86.000 Requests pro Tag auf die fremde Seite loslassen? Ist das nicht ein bisschen heftig? Ich fände das als Betreiber der Zielseite jedenfalls nicht so prall.
                      Also falls ich so etwas bei mir entdecken würde wäre die IP sofort in der Firewall eingetragen und der Seitenbetreiber hätte ne Abuse-Mail im Postfach.

                      Also ohne Einverständnis solltest du das auf keinen Fall angehen.

                      Kommentar


                      • #12
                        Zitat von Comu Beitrag anzeigen
                        Das was ich vorhab:
                        Ich will alle neuen Einträge einer Webseite die gerade dazu gekommen sind auslesen und abspeichern.
                        Das was du vorhast, nennt man "Content Klau", sobald du die Daten in irgendeiner Weise weiterverwendest, worauf das Vorhaben abzuzielen scheint.

                        Was sind das für Einträge? Klingt nach Forum oder Newsticker, frag doch mal beim Betreiber nach, ob es nicht einen "Feed" gibt (das sind Schnittstellen, die für genau solche Vorhaben wie deines erdacht wurden).

                        Kommentar


                        • #13
                          Zitat von Comu Beitrag anzeigen

                          Meine Lösungen (bis jetzt):
                          -> Windows: Mit nem grafischen Browser einfach das Script jede Sekunde neu aufrufen (header) oder jeweils nen AJAX Request senden.

                          -> Linux: Ich lasse einen Cronjob jede Sekunde laufen. (Ist das überhaupt möglich?)

                          -> Beides: Ich lasse ne Bash Schleife laufen die jede Sekunde das PHP Script aufruft und endlos läuft.


                          schon mal daran gedacht:
                          http://cygwin.com/packages/cron/cron-4.1-59

                          Kommentar


                          • #14
                            Also, wenn es eine realistische Möglichkeit ist, ist das hier…

                            -> Beides: Ich lasse ne Bash Schleife laufen die jede Sekunde das PHP Script aufruft und endlos läuft.
                            …die beste Option. Nur nicht mit einer Bash-Schleife, die jede Sekunde ein weiteres Skript aufruft, sondern mit einem Skript, das so aufgebaut ist:

                            PHP-Code:
                            <?php

                            while (true) {
                                
                            doYourThing();
                                
                            sleep(1);
                            }

                            Kommentar


                            • #15
                              macht sone
                              PHP-Code:
                              while (true) {
                              /* something */

                              nicht unnötig viel Last?
                              und, da ja alle sekunde sowieso nicht im produktiven Einsatz sinnvoll ist - die Antwort kommt wenn wie viele neue Abfragen gestellt wurden (?) - bleibe ich bei cron.

                              Aber wieso soll php effektiver sein als sh ?

                              Kommentar

                              Lädt...
                              X