Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Script in Schleife arbeiten lassen

  1. #1
    Registrierter Benutzer
    Registriert seit
    Feb 2010
    Beiträge
    12

    Script in Schleife arbeiten lassen

    Hallo,

    ich habe ein php-script was alle paar min aufgerufen wird per cronjob. nun hat dieses script eine aufgabe daten zu sammeln. dieses kann mal in 2min abgearbeitet sein, aber auch mal in 5min.
    der cron ist ja auf eine feste zeit eingestellt */5

    immer wenn ich etwas schneller arbeiten möchte, gehe ich folgender massen vor: ich starte das scipt 4x im hintergrund per hand und warten immer bis eines durchgelaufen ist und starte dann sofort ein neues. dadurch kann ich schneller daten sammeln und es sind wie beim cron immer 4 scripte am arbeiten. aber halt nicht immer alle 5min, sondern dann wenn sie fertig sind.

    kann ich dieses irgendwie automatisieren?

    gruß lechef

  2. #2
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.061
    wieso lässt Du das Script nicht sicht selbst neu starten oder schreibst Dir ein Shell-Script mit einer Endlos-Schleife um den Scriptaufruf herum?
    Ich bin root - ich darf das.

  3. #3
    Registrierter Benutzer
    Registriert seit
    Feb 2010
    Beiträge
    12
    hui, und wie sollte das aussehen? also ein schleife bekomme ich grad noch hin, aber wie soll die schleife prüfen ob der task nun fertig ist. steh da grad ein bissel auf dem schlauch.
    kann man einen task mit einem bestimmten merkmal starten, so das er auch wiedergefunden wird. ein suchen mit "ps aux | grep [task]" kommt ja nicht in frage, da die cron.php ja 4x gleichzeitig laufen soll.

    gruß lechef

  4. #4
    Pinguin! Avatar von John W
    Registriert seit
    Jan 2009
    Beiträge
    490
    Zitat Zitat von lechef Beitrag anzeigen
    ein suchen mit "ps aux | grep [task]" kommt ja nicht in frage, da die cron.php ja 4x gleichzeitig laufen soll.
    Falsch, setzen, lernen: wc -l zählt die Zeilen, damit kann man sich was basteln:
    Code:
    #<script>
    scriptcount=5
    while [ $scriptcount -gt 4 ]
    do
    sleep 5
    scriptcount=$(ps aux | grep cron.php | wc -l)
    done
    $0 <parameter> &
    Das sollte so in etwa funktionieren, nur Parameter müsstest du dann entsprechend ersetzen.
    Alle Codeschnipsel können frei verwendet werden, die Verantwortung liegt jedoch bei der Person, die den Code einsetzt.

  5. #5
    Registrierter Benutzer
    Registriert seit
    Oct 2004
    Beiträge
    52
    Ist das abfragen über 'ps' überhaupt notwendig. Mein Vorschlag wäre folgendes Script:

    Code:
    while true; do
    /usr/bin/php /pfad/zum/php-script.php
    done
    Und das dann 4x aufrufen... die Schleife wird ja erst weiter ausgeführt, wenn das PHP-Script beendet ist, im nächsten Durchlauf wird dies dann gleich wieder gestartet.
    Denkfehler?

  6. #6
    Pinguin! Avatar von John W
    Registriert seit
    Jan 2009
    Beiträge
    490
    Denkfehler
    Nö, stimmt - manchmal ist man nur zu vernagelt, um die einfachste und effektivste Methode zu erkennen.
    Alle Codeschnipsel können frei verwendet werden, die Verantwortung liegt jedoch bei der Person, die den Code einsetzt.

Ähnliche Themen

  1. Shell zähler schleife im script geht nicht per cron job
    Von boesi666 im Forum Linux Allgemein
    Antworten: 3
    Letzter Beitrag: 05.02.09, 19:08
  2. Perl Script per Cronjob starten
    Von Klaus_P im Forum Anbindung an die Aussenwelt
    Antworten: 2
    Letzter Beitrag: 16.05.04, 14:20
  3. Athlon idle Script
    Von steve-e im Forum Anwendungen Allgemein, Software
    Antworten: 2
    Letzter Beitrag: 05.05.04, 17:16
  4. Antworten: 2
    Letzter Beitrag: 21.05.03, 15:30
  5. Numlock per Script aktivieren...
    Von neXes im Forum System installieren und konfigurieren
    Antworten: 4
    Letzter Beitrag: 14.05.03, 19:02

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •