Cronjob

PHPer

Erfahrenes Mitglied
Hallo Leute!

Ich habe zwar angefangen C++ zu lernen, bin aber nicht sehr weit mit gekommen. Jedenfalls weis ich wie ich ein Script compilier. Nun hätt ich ne Bitte an jemanden von Euch, ob er mir ein kleines Script (das ich später selber Compilieren kann) schreiben könnte.

Das Script sollte in einem eingestellten Zeitraum (z.B. alle 5 min oder einmal die Stunde oder so) eine bestimmte URL (http://www.domain.de/datei.php) aufrufen damit das PHP Script weiteres ausführen kann. Diese sollten halt in variablen steckbar sein. Wenn möglich sollte man damit mehrere URLs zu je versch. Zeiten aufrufen können, um nicht das ganze Programm mehrmals starten zu müssen (OOP ;)).

Das ganze sollte rein C++ sein damit es auch Plattform unabhängig bleibt. Also kein WinAPI oder so. Das soll anschließend zuerst auf meinem Windows Rechner (CMD) und später auf nem Linux Server laufen.

Kann mir da jemand mal schnell was schreiben?

Danke! :)
 
moin


Wenn ncihtmal WINApi sein darf wird es aufwendiger bei mehreren Aufrufen.

Code:
#include <shellapi.h>
#include <windows.h>

int main()
{
    char adresse[100];

    scanf("%s", adresse);

    while(1)
    {
        ShellExecute(NULL, "open", adresse, NULL, NULL, SW_SHOW);
        Sleep(300000);
    }
    return 0;
}

Damit sollte eine Adresse alle 5 Minuten aufgerufen werden. Eine Funktion wie Sleep gibt es unter Linux auch mit welchem Namen und welcher Header weiss ich nicht.
ShellExecute wird unter Linux wohl auch nicht funktionieren. Aber da wird es auch vergleichbares geben.


mfg
umbrasaxum
 
Als erstes solltest du dein Frage präziser formulieren. Ich versteh nämlich nicht ganz, was du vor hast. Möchtest du jetzt auch in deinem Program die Webseite auswerten, oder soll sie nur aufgerufen werden?
 
@canuzzi: Ich will nur ein PHP Script aufrufen, das die restliche Arbeit ansich erledigt.

@umbrasaxum: Das ganze soll einmal fest compiliert werden und anschließend laufen. Bei Veränderungen will ichs einfach nur neu compilieren ggf.. Danke! ;)

@umbrasaxum: Ich kenne solche Dienste, diese sind aber meist auf eine Stunde beschränkt. Und wenn ich dann später nen CronJob will der alle 5 Min läuft oder gar 10 mal in der Sekunde naja dann siehts wieder übel mit aus. ;)
 
Hy!

Aktuell ist das kleinste Intervall das du bei Cronjobs "einstellen" kannst 5 Minuten.
Sollte dieses Intervall ausreichen solltest du dir vielleicht überlegen ob du das nicht einfach mit einem Shellscript machen möchtest.

Solltest du unter dieses Intervall wollen, wird es am besten sein, wenn du mit system() (leider, unter Linux gibts nichts anderes) einen Konsolenbrowser aufrufst, z.B. Lynx oder w3m und diesem als Startparameter deine PHP-Seite aufrufst, bzw. wenn es dein Server ist kannst du auch gleich den php-Parser aufrufen.
Dann müsstet du dein Programm für die Dauer die du warten möchtest "schlafen legen".
Und zwar mit usleep() (tipp mal "man usleep" in der Konsole). (Eigentlich dasselbe wie es umbrasaxum vorgeschlagen hat, nur mit Linux Funktion)
usleep befindet sich im unistd.h Header.

mfg
uhu01
 
moin


Wieso kompliziert?
Und wieso jetzt doch mit C++?
Dann wird es immer weniger kompatibel zu Linux sein (zwar nicht unbedingt, aber wahrscheinlich)


mfg
umbrasaxum
 
Naja ich wollt mir ne Anwendung schreiben die mir meine Datenbank überwacht und gewissen Aufgaben darin erledigt und da ich C++ noch lern und es noch nicht so gut kann dafür halt PHP wollt ich (zumindest vorrübergehen) diese Bearbeitung PHP überlassen und da PHP nachdem das Script durchlaufen ist die Arbeit beendet bzw. anderweitig abbricht müssten halt Cronjobs her die das Script immer und immer wieder aufrufen nur das mit den ganzen Kommandozeilen und so wird mir dann doch n bissl zu umständlich dann lern ich lieber richtig C++ und mach alles damit (auch wenn mein Kurs im Juni ist) fertig. :)
 
moin


Deine einstellung zum lernen ist jedenfalls richtig.

Aber was ist denn mit meinem Programm oben? du kannst da ja auch die Adresse direkt einsetzen, dann musst du das Programm nur noch starten.


mfg
umbrasaxum
 
Zurück