Aufruf im Minutentakt
-
Danke für eure Hilfe aber dann muss ich das wohl doch irgend wie anders machen...hätte icht gedacht das es so schwer ist ein programm alle zehn sekunden aufzurufen...was solls...Danke
-
Nein, weil system zuerst die shell aufruft.
Bist dir da sicher ???
Glaub muss da noch mal nachlesen ... mir war aber irgendwie im gedaechtniss, das system nen fork() + exec nur kombiniert .... ?Bei mir funktionierte zum beispiel der aufruf eines .sh scripts ned, was aber haette laufen sollen, wenn er die shell zu aufmacht ... Nen systemaufruf mit /bin/bash + dem shell script funktionierte.
Shell war gesetzt fuer den user, und es war die bash ... .sh hatte executable flag ...Edit:
Ok, wenn du schon so zitierst, hasst sicher recht
Dann irre ich mich
edit2 :
Jupp, hasst recht ... da hab ich was verhauen ...Ciao ...
-
Also hast denn schon mal an die Timer Funktion gedacht?
Das ist kein sleep(); sonder ein echter Timer nur wie der unter dev-C+++ geschrieben wird weiss ich nicht(aber es gibt dazu genug Beiträge im Netz).
Und es gibt doch bestimmt Befehl in Linux mit den man die Systemzeit auslesen kann? Das wär doch auch ne gute Möglichkeit.
-
TheRaven schrieb:
CronJobs sprechen nicht dagegen , aber ich möchte das alle 10 sekunden eine php datei aufgerufen wird und das ist mit cronjobs nicht machbar.
Ursprünglich war zwar von "jede Minute" die Rede, aber gut...
Um nochgenauer zu sein : das php script liefert daten von einem game server wie punkte etc. diese werten ausgewertet und in eine sql db geschrieben jeder gamer kann sich dann später auf der homepage angucken wie gut er ist etc.
Und das muss wirklich alle 10 Sekunden aktualisiert werden?
Wenn ja dann schreib Dir einfach einen kleinen Daemon der Dein Update-Script alle 10 Sekunden via exec* startet.edit: Und programmieren würde ich das der Einfachheit halber unter GNU/ Linux wenn das auch Dein Zielsystem ist. Schlimmstenfalls holst Du Dir halt ein Knoppix zum Entwickeln.
-
Habe schon mit den 100% Cpu Auslastung gemerkt
War nur ein Witz ( sinnlose Demo für clock() ). Sorry, wollte dich nicht ärgern.
http://www.cron-server.de/ , sleep() / Sleep() oder MT.
... und jetzt setze ich als Gag noch einen oben drauf (timer-Klasse ist allerdings brauchbar für Zeitmessungen):
// aufbauend auf http://finmath.uchicago.edu/~wilder/Code/timer/ // // timer.h #ifndef TIMER_H #define TIMER_H #include <ctime> class timer { private: bool running; double accumulated_time; clock_t start_time; timer(const timer& t); void operator=(const timer& t); public: timer() : running(false), accumulated_time(0) { } ~timer() { } void start (const char* timer_name = 0); void restart (const char* timer_name = 0); void stop (const char* timer_name = 0); double check (const char* timer_name = 0); double elapsed_time (); }; #endif // TIMER_H //------------------------------------------- // timer.cpp #include <ctime> #include <iostream> #include <iomanip> #include "timer.h" using namespace std; double timer::elapsed_time() { clock_t curr_time = clock(); return double(curr_time - start_time) / CLOCKS_PER_SEC; } void timer::start(const char* timer_name) { if (running) return; cout.setf(ios::fixed, ios::floatfield); if (timer_name) cout << "Timing [" << timer_name << "]...\n"; running = true; start_time = clock(); } void timer::restart(const char* timer_name) { if (timer_name) cout << "Restarting [" << timer_name << "]...\n"; accumulated_time = 0; running = true; start_time = clock(); } double timer::check(const char* timer_name) { if (timer_name) cout << "Checking timer [" << timer_name << "]...\n"; if (running) return accumulated_time + elapsed_time(); return accumulated_time; } void timer::stop(const char* timer_name) { if (running) accumulated_time += elapsed_time(); running = false; setprecision(4); if (timer_name) cout << "Ending [" << timer_name << "] : " << accumulated_time << endl; } //------------------------------------------------------------------------------------------ // main.cpp #include <iostream> #include <conio.h> #include "timer.h" using namespace std; void wait_ms( unsigned t ) { double zeit; clock_t start = clock(); do{ zeit = 1000 * ( clock() - start ) / static_cast<float>(CLOCKS_PER_SEC); }while( zeit < t ); } int main() { timer x; const int wait_time = 2000; cout << "Timer started\n"; x.start(); wait_ms(wait_time); cout << x.check("Check 1") << endl; cout << "Timer restarted\n"; x.restart(); wait_ms(wait_time); cout << x.check("Check 2") << endl; cout << "Timer stopped\n"; x.stop(); wait_ms(wait_time); cout << x.check("Check 3") << endl; cout << "Timer started, not restarted\n"; x.start(); wait_ms(wait_time); cout << x.check("Check 4") << endl; getch(); }
-
TheRaven schrieb:
Danke für eure Hilfe aber dann muss ich das wohl doch irgend wie anders machen...hätte icht gedacht das es so schwer ist ein programm alle zehn sekunden aufzurufen...was solls...Danke
Du kannst sowas auch mit verschachteten schleifen leicht selber proggen nur mußt du es geschickt machen wegen der cpu auslastung die du für die operationen brauchst um die verzögerung zu proggen.mein tip achte darauf falls du ne funktion proggst das sie itterativ ist und nicht rekursiv...schau dir am besten dazu ein paar beispiele zu schleifen bzw.allgorithmen an...ich persönlich würde mir nicht die arbeit machen würde stattdessen Sleep() benutzen aber das mußt du allein wissen für was du das proggi brauchst du hast ja an der kritik gehört das Sleep() die 2 wahl ist...
-
Cico schrieb:
TheRaven schrieb:
Danke für eure Hilfe aber dann muss ich das wohl doch irgend wie anders machen...hätte icht gedacht das es so schwer ist ein programm alle zehn sekunden aufzurufen...was solls...Danke
Du kannst sowas auch mit verschachteten schleifen leicht selber proggen nur mußt du es geschickt machen wegen der cpu auslastung die du für die operationen brauchst um die verzögerung zu proggen.mein tip achte darauf falls du ne funktion proggst das sie itterativ ist und nicht rekursiv...schau dir am besten dazu ein paar beispiele zu schleifen bzw.allgorithmen an...ich persönlich würde mir nicht die arbeit machen würde stattdessen Sleep() benutzen aber das mußt du allein wissen für was du das proggi brauchst du hast ja an der kritik gehört das Sleep() die 2 wahl ist...
Schwachsinn!Wie willst du dir ne sleep funktion mit verschachtelten schleifen basteln? Haste da mal sourcecode???
Und was hat das Problem hier mit iterativen und rekursiven Algorithmen zu tun???
-
Der Raven aus Sachsen o_O ?
-
this->that schrieb:
Cico schrieb:
TheRaven schrieb:
Danke für eure Hilfe aber dann muss ich das wohl doch irgend wie anders machen...hätte icht gedacht das es so schwer ist ein programm alle zehn sekunden aufzurufen...was solls...Danke
Du kannst sowas auch mit verschachteten schleifen leicht selber proggen nur mußt du es geschickt machen wegen der cpu auslastung die du für die operationen brauchst um die verzögerung zu proggen.mein tip achte darauf falls du ne funktion proggst das sie itterativ ist und nicht rekursiv...schau dir am besten dazu ein paar beispiele zu schleifen bzw.allgorithmen an...ich persönlich würde mir nicht die arbeit machen würde stattdessen Sleep() benutzen aber das mußt du allein wissen für was du das proggi brauchst du hast ja an der kritik gehört das Sleep() die 2 wahl ist...
Schwachsinn!Wie willst du dir ne sleep funktion mit verschachtelten schleifen basteln? Haste da mal sourcecode???
Und was hat das Problem hier mit iterativen und rekursiven Algorithmen zu tun???Es geht hier um ne zeitverzögerung von x sec.hast du wohl hoffendlich mitbekommen...es geht nicht darum eine sleep funktion mit ner schleife zu proggen...und eine zeitverzögerung sprich,zeitschleife kann man simulieren mit einem allgorithmus der z.b eine rechenoperation sooft durchführt und eine gewisse zeit brauch z.b 1.sec und jetzt stellst du dir eine schleife vor die die operation 10 mal in einer verschachtelten schleife wiederholt...das beispiel ist hoffendlich primitiv genug um das zu verstehen...
Achja und wenn du nicht mal den unterschied bzw.vor u.nachteile zwischen itterativ u. rekursiv kennst in bezug auf funktionen,dann mach dich erst mal schlau...
ich wollt jetzt niemand ans bein pinkeln aber sowas langweilt halt....gääähn...
-
Cico schrieb:
Es geht hier um ne zeitverzögerung von x sec.hast du wohl hoffendlich mitbekommen...es geht nicht darum eine sleep funktion mit ner schleife zu proggen...und eine zeitverzögerung sprich,zeitschleife kann man simulieren mit einem allgorithmus der z.b eine rechenoperation sooft durchführt und eine gewisse zeit brauch z.b 1.sec und jetzt stellst du dir eine schleife vor die die operation 10 mal in einer verschachtelten schleife wiederholt...das beispiel ist hoffendlich primitiv genug um das zu verstehen...
Selten so einen Schwachsinn gelesen. Das kann aufgrund des Prozesswechsels und der unterschiedlichen Prozessorgeschwindigkeiten nicht funktionieren. Kannst uns ja gerne mal Code zeigen.
Achja und wenn du nicht mal den unterschied bzw.vor u.nachteile zwischen itterativ u. rekursiv kennst in bezug auf funktionen,dann mach dich erst mal schlau...
ich wollt jetzt niemand ans bein pinkeln aber sowas langweilt halt....gääähn...Ich weiß was die Begriffe bedeuten (wohl besser als du). Fakt ist, daß das hier absolut nichts zur Lösung des Problems bringt.
-
this->that schrieb:
Cico schrieb:
Es geht hier um ne zeitverzögerung von x sec.hast du wohl hoffendlich mitbekommen...es geht nicht darum eine sleep funktion mit ner schleife zu proggen...und eine zeitverzögerung sprich,zeitschleife kann man simulieren mit einem allgorithmus der z.b eine rechenoperation sooft durchführt und eine gewisse zeit brauch z.b 1.sec und jetzt stellst du dir eine schleife vor die die operation 10 mal in einer verschachtelten schleife wiederholt...das beispiel ist hoffendlich primitiv genug um das zu verstehen...
Selten so einen Schwachsinn gelesen. Das kann aufgrund des Prozesswechsels und der unterschiedlichen Prozessorgeschwindigkeiten nicht funktionieren. Kannst uns ja gerne mal Code zeigen.
Achja und wenn du nicht mal den unterschied bzw.vor u.nachteile zwischen itterativ u. rekursiv kennst in bezug auf funktionen,dann mach dich erst mal schlau...
ich wollt jetzt niemand ans bein pinkeln aber sowas langweilt halt....gääähn...Ich weiß was die Begriffe bedeuten (wohl besser als du). Fakt ist, daß das hier absolut nichts zur Lösung des Problems bringt.
Das mit der Prozessorgeschw. stimmt.die kann auf verschiedenen cpu's unterschiedlich sein doch hat er ja nicht erwähnt das das proggi auf unterschiedlichen rechnern laufen muss...ansonsten kommt er nicht an einer timerabfrage vorbei....um diese urzeit schaltet sich mein hirn auf ruhephase...gäähn...
-
Cico schrieb:
this->that schrieb:
Cico schrieb:
Es geht hier um ne zeitverzögerung von x sec.hast du wohl hoffendlich mitbekommen...es geht nicht darum eine sleep funktion mit ner schleife zu proggen...und eine zeitverzögerung sprich,zeitschleife kann man simulieren mit einem allgorithmus der z.b eine rechenoperation sooft durchführt und eine gewisse zeit brauch z.b 1.sec und jetzt stellst du dir eine schleife vor die die operation 10 mal in einer verschachtelten schleife wiederholt...das beispiel ist hoffendlich primitiv genug um das zu verstehen...
Selten so einen Schwachsinn gelesen. Das kann aufgrund des Prozesswechsels und der unterschiedlichen Prozessorgeschwindigkeiten nicht funktionieren. Kannst uns ja gerne mal Code zeigen.
Achja und wenn du nicht mal den unterschied bzw.vor u.nachteile zwischen itterativ u. rekursiv kennst in bezug auf funktionen,dann mach dich erst mal schlau...
ich wollt jetzt niemand ans bein pinkeln aber sowas langweilt halt....gääähn...Ich weiß was die Begriffe bedeuten (wohl besser als du). Fakt ist, daß das hier absolut nichts zur Lösung des Problems bringt.
Das mit der Prozessorgeschw. stimmt.die kann auf verschiedenen cpu's unterschiedlich sein doch hat er ja nicht erwähnt das das proggi auf unterschiedlichen rechnern laufen muss...ansonsten kommt er nicht an einer timerabfrage vorbei....um diese urzeit schaltet sich mein hirn auf ruhephase...gäähn...
Natürlich stimmt es. Diese Schleifen würden nie funktionieren - selbst nicht auf einem Prozessor. Und wenn er dann irgendwann mal ein andres System benutzt wäre alles fürn Arsch. Dass er nen Timer braucht stand nie in Frage - nur gibt es da bereits Dutzende! Geh besser schlafen
-
warum nimmt er denn nicht einfach Sleep() und fertig?!??!
-
Du musst zugeben, dafür Multithreading zu benutzen klingt einfach professioneller
-
Genau, z.B.: boost::thread