Cronjobs
Hallo Mensen,
Ik moet een php scriptje elke seconden laten draaien, dit kan niet met een enkele cronjob weet ik.
Die gaan maar tot 1 minuut.
Nu vroeg ik me af, of 60 cronjobs die allemaal een minuut speling hebben succesvol zou zijn?
Of moet ik toch echt op zoek gaan naar een alternatief?
Ik moet een php scriptje elke seconden laten draaien, dit kan niet met een enkele cronjob weet ik.
Die gaan maar tot 1 minuut.
Nu vroeg ik me af, of 60 cronjobs die allemaal een minuut speling hebben succesvol zou zijn?
Of moet ik toch echt op zoek gaan naar een alternatief?
Waarom wil je elke seconden een cron draaien?
Wat wil je precies bereiken? Vaak zijn cronjobs overbodig en valt het met een mooie PHP-implementatie op te lossen.
Wat wil je precies bereiken? Vaak zijn cronjobs overbodig en valt het met een mooie PHP-implementatie op te lossen.
de site draait op timers,
de cronjob moet kijken (liefst elke seconden), of de timer onder een bepaalde seconden komt. En als dat het geval is moet het een script uitvoeren.
de cronjob moet kijken (liefst elke seconden), of de timer onder een bepaalde seconden komt. En als dat het geval is moet het een script uitvoeren.
wat voor timers? dit klinkt namelijk nog steeds niet alsof het nodig is.
Zeg maar dat een product 60 seconden bestaat.
Als de tijd onder de 3 seconden komt moet er een autobieder komen.
Als de tijd onder de 3 seconden komt moet er een autobieder komen.
En waarom kan dat niet bij een aanroep geregeld worden.
pagina request
Als tijd<3 && bieders=0
DAN maak autobieder
De tijd kan ook negatief zijn, en bij de eerste weergave staat de autobieder er al bij. Dat het dan eigenlijk later aangemaakt is moet geen probleem zijn.
pagina request
Als tijd<3 && bieders=0
DAN maak autobieder
De tijd kan ook negatief zijn, en bij de eerste weergave staat de autobieder er al bij. Dat het dan eigenlijk later aangemaakt is moet geen probleem zijn.
Het moet ook doorlopen als de browser is afgesloten.
Je kunt mij nog steeds niet duidelijk maken wat het probleem is als dat later gebeurt en dan alles in 1 keer "inhaalt" als er niemand kijkt is het ook niet erg als de data achterloopt.
Laat ik me vraag anders formuleren:
Hoe kan ik php script elke seconden laten runnen?
En dan wil ik alleen daar antwoord op hebben :P
Hoe kan ik php script elke seconden laten runnen?
En dan wil ik alleen daar antwoord op hebben :P
struisvogel gedrag :p
Simpele antwoord: niet.
Ingewikkeld antwoord: een service schrijven die elke seconde het script aanroept.
(php is zelf niet bedoelt om te blijven draaien dus dat is zeer onverstandig)
Simpele antwoord: niet.
Ingewikkeld antwoord: een service schrijven die elke seconde het script aanroept.
(php is zelf niet bedoelt om te blijven draaien dus dat is zeer onverstandig)
okej, en weet je misschien al een service die dat doet?
Nee, ik denk dat je die ook zelf moet schrijven. Bijvoorbeeld in C++/C# (afhankelijk van je server os)
Maar 60 cronjobs allemaal met 1 sec verschil is geen optie?
Ik heb nu wel wat gevonden trouwens op het internet:
http://kevin.vanzonneveld.net/techblog/article/create_daemons_in_php/
Ik heb nu wel wat gevonden trouwens op het internet:
http://kevin.vanzonneveld.net/techblog/article/create_daemons_in_php/
Heb je het ook gelezen. De memory afhandeling van php gaat er vanuit dat het maar een tijdelijk proces is. Je moet dus handmatig je garbage collector regelen (unset is niet genoeg) anders loopt je geheugen vol. Verder zijn er veel onderdelen die resultaten cachen. Dit kan dus niet bij een deamon omdat die blijft doorgaan en gegevens dus wijzigen.
Jezus
Luistert:
Je wilt een script met een autobieding. Waarom?
Op het moment dat iemand op een bepaald product klikt, moet deze een autobieding zien omdat de tijd onder de x seconden is gekomen.
Dus: op het moment dat jantje de pagina bezoekt, kijk jij simpelweg "is het nu onder de x seconden?" zo, ja: Plaats dan die auto bieding. Ga niet kansloos zitten doen met onnodige system load en/of cronjobs.
Ga ook geen daemons proberen te draaien met PHP. Doe het gewoon netjes/zoals het hoort, en niet kansloos met daemons enzo. Het is een website.
Zucht..
Luistert:
Je wilt een script met een autobieding. Waarom?
Op het moment dat iemand op een bepaald product klikt, moet deze een autobieding zien omdat de tijd onder de x seconden is gekomen.
Dus: op het moment dat jantje de pagina bezoekt, kijk jij simpelweg "is het nu onder de x seconden?" zo, ja: Plaats dan die auto bieding. Ga niet kansloos zitten doen met onnodige system load en/of cronjobs.
Ga ook geen daemons proberen te draaien met PHP. Doe het gewoon netjes/zoals het hoort, en niet kansloos met daemons enzo. Het is een website.
Zucht..
Niek als je gelezen hebt, de autobieding moet ook door gaan als jantje er niet is.
Beste Cars,
je snapt Niek niet helemaal denk ik. Het maakt voor pietje niet uit dat jantje er niet is aangezien het script ook bij pietje wordt uitgevoerd. De oplossingen van TJVB en niek zijn gewoon goed.
je snapt Niek niet helemaal denk ik. Het maakt voor pietje niet uit dat jantje er niet is aangezien het script ook bij pietje wordt uitgevoerd. De oplossingen van TJVB en niek zijn gewoon goed.
okej, maar er is toch een moment dat er niemand online is ?
Het gaat erom dat het script ook als niemand online is door blijft draaien.
Of volg ik de redenatie niet helemaal van niek of tjvb?
Het gaat erom dat het script ook als niemand online is door blijft draaien.
Of volg ik de redenatie niet helemaal van niek of tjvb?
Gewijzigd op 15/09/2010 12:52:23 door Cars Meulman
je volgt idd de redenatie niet helemaal. Waarom zou het door moeten blijven draaien als er niemand is? Je hoeft alleen maar de checks te doen en je data te behandelen als je iemand de pagina toont.
Misschien ben ik ook niet duidelijk geweest. :P
het gaat om een bied functie die gebruikers kunnen aanzetten, ik noem het maar een autobieder. Deze autobieder bied over een bepaalde product heen zonder dat ze online hoeven te zijn.
het gaat om een bied functie die gebruikers kunnen aanzetten, ik noem het maar een autobieder. Deze autobieder bied over een bepaalde product heen zonder dat ze online hoeven te zijn.
Gewijzigd op 15/09/2010 12:58:57 door Cars Meulman
Aha, een bidagent. Hetzelfde als op bidrivals.nl?
Dan ontkom je volgens mij idd niet aan een cronjob.
Dan ontkom je volgens mij idd niet aan een cronjob.




