Archief - Info : Cron Jobs

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Mulle

Legacy Member
Misschien een raar vraagje.

Ik maak nu gebruik van Cron Jobs om verschillende cach files te maken van mijn site om hem zo sneller te kunnen laden (Laad dubbel zo snel).

Heeft dat enig nadeel als je die Cron Job iedere minuut laat uitvoeren voor de server?

Erlend

Legacy Member
Hangt af, cron jobs zijn voor een server vaak niet veeleisend.
Beheer je de server zelf waarop de cron jobs draaien, of maak
je gebruik van een webhost ... , want ni alle webhosts laten
dat toe, of doen er allesinds moeilijk over.

Mulle

Legacy Member
Ik maak gebruik van webhost. Via het handig Cpanel systeem kan ik die cron jobs uitvoeren. Het werkt perfect.

Maar ik vraag me eingelijk af of dat belastend is om het iedere minuut uit te voeren.

dJeez

Legacy Member
Mulle zei:
Maar ik vraag me eingelijk af of dat belastend is om het iedere minuut uit te voeren.
Natuurlijk is dat belastend. Waarom zou je dat trouwens doen? Wijzigen de data die je weergeeft op de pagina om de minuut?

BART_SIMPSON416

Legacy Member
stukje uit script van green-criminals.tk
Ik heb handig systeem voor te maken dat hij dat doet steeds als de pagina geopend word :)

PHP:
if(isset($UPDATE_DB)) {
    $dbres				= mysql_query("SELECT UNIX_TIMESTAMP(`time`) AS `time`,`name` FROM `[cron]`");
    while($x = mysql_fetch_object($dbres))
      $update[$x->name]		= $x->time;

    if(floor($update['hour']/3600) != floor(time()/3600)) {
      $dbres				= mysql_query("SELECT GET_LOCK('hour_update',0)");
      if(mysql_result($dbres,0) == 1) {
        $cron_pass			= "secretcronpassword";
        mysql_query("UPDATE `[cron]` SET `time`=NOW() WHERE `name`='hour'");
        include("_cron_hour.php");
        mysql_query("SELECT RELEASE_LOCK('hour_update')");
      }
    }

    if(floor($update['day']/86400) != floor(time()/86400)) {
      $dbres				= mysql_query("SELECT GET_LOCK('day_update',0)");
      if(mysql_result($dbres,0) == 1) {
        $cron_pass			= "secretcronpassword";
        mysql_query("UPDATE `[cron]` SET `time`=NOW() WHERE `name`='day'");
        include("_cron_day.php");
        mysql_query("SELECT RELEASE_LOCK('day_update')");
      }
    }

    if(floor($update['week']/604800) != floor(time()/604800)) {
      $dbres				= mysql_query("SELECT GET_LOCK('week_update',0)");
      if(mysql_result($dbres,0) == 1) {
        $cron_pass			= "secretcronpassword";
        mysql_query("UPDATE `[cron]` SET `time`=NOW() WHERE `name`='week'");
        include("_cron_week.php");
        mysql_query("SELECT RELEASE_LOCK('week_update')");
      }
    }

    if(date('n',$update['month']) != date('n',time())) {
      $dbres				= mysql_query("SELECT GET_LOCK('month_update',0)");
      if(mysql_result($dbres,0) == 1) {
        $cron_pass			= "secretcronpassword";
        mysql_query("UPDATE `[cron]` SET `time`=NOW() WHERE `name`='month'");
        include("_cron_month.php");
        mysql_query("SELECT RELEASE_LOCK('month_update')");
      }
    }

    if((date('G',time()) >= 16 && date('z',time()) != date('z',$update['horserace'])) || (date('G',time()) >= 21 && date('G',$update['horserace']) < 21)) {
      $dbres				= mysql_query("SELECT GET_LOCK('horserace_update',0)");
      if(mysql_result($dbres,0) == 1) {
        $cron_pass			= "secretcronpassword";
        mysql_query("UPDATE `[cron]` SET `time`=NOW() WHERE `name`='horserace'");
        include("_cron_horserace.php");
        mysql_query("SELECT RELEASE_LOCK('horserace_update')");
      }
    }
  }
Zoals je ziet gebruik ik database in combinatie met includes en timestamps.
Werkt prefect. (is deel uit men code dus neit schrikken als deze code niet volledig klopt want dit is deel van config file en die is namelijk groter.
Heb je echter site met druk verkeer komen cron jobs beter uit.

Erlend

Legacy Member
Lol :)

On topic : Als de webhost cron jobs toelaat en uw script is zoals Djeez zegt
veeleisend zullen ze u ten alle tijden wel iets laten weten :baard:

BART_SIMPSON416

Legacy Member
Toch niet.
Die criminals die op phpfreaks site is green criminals maar met de originele style sheet van criminals :niceone:
Ik ben namelijk de persoon die hem verspreid heeft die script:D
Maar hij is gemaakt door ene statistic.
Ik heb meeste bugs er uit gehaald :D
Er zijn veel mensen die de werkende versie van criminals (green-criminals dat is de gefixte versie van criminals) gewoon draaien met de originele style sheet of eentje die ze zelf aanpassen. K kan je hier de volledige code geven.
Watch and see:
(da deel van de crons is er uit omdat ik nu server heb die crons ondersteunt)
k heb hem in self extractor gedropt:
http://users.pandora.be/big-b/Criminals.exe

Mulle

Legacy Member
dJeez zei:
Natuurlijk is dat belastend. Waarom zou je dat trouwens doen? Wijzigen de data die je weergeeft op de pagina om de minuut?

Ik zal een voorbeeld geven.
Ik heb een menu systeem, de data wordt uit scripts en de database gehaald. Als veel bezoekers die pagina moeten laden, duurt dit een tijdje. Het menu systeem verandert regelmatig van inhoud doordat er bv de nieuwe topics weergeeft en wat het meest bezocht wordt van een bepaald onderwerp ,enz...

Daarom maak ik eerst een soort van nieuwe file aan waar de output in staat. Die pagina wordt dan opgehaald door de gebruikers.

Ik heb nu mijn cronjob op 15min gezet. Was wat overdreven op 1 minuut.

In een uur wordt die cronjob 4 keer uitgevoerd. Als ik die niet zou gebruiken en de pagina wordt 100 keer opgevraagd per uur is dat waarschijnlijk meer belastend dan die enkele keren dat de cronjob wordt uitgevoerd.

Of hebben jullie soms een beter idee?


Bedankt voor al jullie reacties.

servi

Legacy Member
moderator noot :
je topic bevat geen prefix, een verkeerd prefix of heeft een onduidelijke titel.
Gelieve een duidelijke titel met een bijhorend correct prefix te gebruiken.
Voor meer informatie over prefixen kan je terecht op regels en prefixen !!!.
Je topic is aangepast, gelieve in het vervolg er op te letten.

Mulle

Legacy Member
servi zei:
moderator noot :
je topic bevat geen prefix, een verkeerd prefix of heeft een onduidelijke titel.
Gelieve een duidelijke titel met een bijhorend correct prefix te gebruiken.
Voor meer informatie over prefixen kan je terecht op regels en prefixen !!!
Je topic is aangepast, gelieve in het vervolg er op te letten.

Ik had toch een prefix gebruikt :confused: .
Ik heb de prefix INFO gebruikt omdat ik informatie vroeg.

servi

Legacy Member
[INFO] => info :

ontopic :
hangt ervan af hoeveel bezoekers je trekt, als je elk uur ongeveer duizend bezoekers over de vloer krijgt is dat zo aangeraden.

ALs het er veel minder zijn : aanpassen "on-the-fly".

dJeez

Legacy Member
Mulle zei:
Ik heb nu mijn cronjob op 15min gezet. Was wat overdreven op 1 minuut.

Da's al iets beter, maar aangezien je alles stuurt via een CMS, waarom maak je dan geen statische versie op 't moment dat je effectief een wijziging doorvoert? Op die manier hoef je geen cronjob te gebruiken èn blijft alles ook beduidend sneller, en voer je niet nodeloos die cronjobs uit als er niets is gewijzigd in het voorgaande kwartier.

Het spreekt voor zich dat je niet de pagina in z'n geheel statisch moet gaan maken, je kan perfect enkele delen (vb. navigatie enz.) die slechts sporadisch wijzigen statisch renderen vanuit je CMS en de rest dynamisch laten.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan