Vraag over cron...

  • Beste,


    Ik heb het World-War script van iemand hier op CP gekocht.


    Er is alleen nog 1 probleem, en dat is het volgende:
    Er zit een loon (cron) in, die elk kwartier word uitgevoerd.
    Maar: Als er geen spelers op zitten moet dit toch worden uitgevoerd.
    Nu word zegmaar als er vanaf bijv. 10:15 geen mensen op zitten t/m 11:15, en er komt iemand online, dan word de cron elke keer als er een pagina word geladen uitgevoerd, maar slechts 1 keer.
    Dus, als jij inlogd op 11:15, word de cron voor 10:15 uitgevoerd.
    Als je daarna naar een andere pagina gaat, word de cron voor 10:30 uitgevoerd.
    Daarna weer voor 10:45, 11:00 en dan pas 11:15.
    Oftewel, er moet 5x een pagina worden aangevraagd alvorens alle crons weer zijn uitgevoerd.


    Is er een manier om misschien 1x een langere pagina load te hebben, en al die 5 crons in 1x uittevoeren?


    Ik dacht zelf dat het mogelijk was door een for(); bij de code te zetten.


    Maar je raad het al: Ik moet dan weten hoe vaak het moet worden uitgevoerd.
    Maar hoe kan ik dat weten..
    Er is alleen een datetime veld in de database.


    Dus de vraag is: Weet iemand hoe ik uit kan rekenen hoeveel keer de cron moet worden uitgevoerd met enkel een datetime veld tot beschikking?


    Bedankt alvast!


    Lars Groot
    P.S: De code hebben jullie waarschijnlijk niet nodig, maar mocht dit toch nodig zijn dan kan je me PM'en.

  • Citaat van larsisgoed9

    1) Ik wil het niet via DirectAdmin of via een externe cron service.
    Ik wil het gewoon hoe ik het hier vermeld had.


    [offtopic]Is een topic lezen nu zo moeilijk? :S[/offtopic]


    Zoals ik al zij: Sloop hem uit OSbanditi en bouw hem daarin

  • Citaat

    Is er een manier om misschien 1x een langere pagina load te hebben, en al die 5 crons in 1x uittevoeren?


    Nee want je moet dus bij elke klik die tijden gaan controleren, en dat is gewoon onzinnige load. Je zet gewoon in DirectAdmin/Cpanel neer dat hij dat bepaalde php bestand elke X tijd moet aanroepen en klaar.


    Ik zie niet in waarom je voor de slechtste optie zou gaan.

  • Dat word lastig, aangezien deze cron wel een paar honderd regels is...


    Ik wil alleen weten of het mogelijk is uit te rekenen vanaf een database datetime ex. 2010-05-15 11:30:00 hoeveel keer er 15 minuten in zitten.
    Dus 2010-05-15 11:00:00 - 2010-05-15 11:30:00 is 2x.


    Lars

  • Blijkbaar is een artikel lezen waarvan de link al gegeven is nog moeilijker dan het zelfde artikel zelf zoeken -.-


    [offtopic]

    Citaat

    Dat word lastig, aangezien deze cron wel een paar honderd regels is...


    Wat is dat trouwens voor een argument? Wat wordt lastig?[/offtopic]

  • Laat maar, ik doe het al via DA.
    Echter heb ik geen zin omdat bestand om te bouwen, en volgens mij als je de index.php opent, word autmatisch dat bestand aangeroepen.
    Ik werk via DirectAdmin.
    Dus had ik eerst 1 cron met bij minute "*/15" ingevuld, maar dat werkt niet.
    Dus nu 4 crons met "15", "30", "45", "0".
    En als path moet je toch "usr/local/bin/php" ervoor zetten?


    Lars

    Nieuwe reactie samengevoegd met originele reactie op 15.05.10 11:36:46:
    Update: DirectAdmin werkt niet naar behoren.
    Daarom werk ik nu via http://setcronjob.com
    Dat werkt goed :)

  • Je laat een andere service jouw php bestanden bezoeken elke 15 min?


    Je weet dat op een gegeven moment je hostingprovider dit zal blokken?

    Hosting Network Services. Special Firewalled hosting for crime games.
    ******
    Msn:** Stuur maar PM.

  • Nee jouw hostingprovider zal dit zien als een automatische flood of request handler. Op een gegeven moment zal dit gezien worden als een spambot, of een flood.

    Hosting Network Services. Special Firewalled hosting for crime games.
    ******
    Msn:** Stuur maar PM.

  • Je kan de cron ook voor de public_html map zetten, hierdoor kunnen gebruikers hem niet openen ;)
    Cronjobs via DA openen hem dan wel :p

    Het bovenstaande bericht werd geplaatst door een lid waarvan het account verwijderd is.

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!