1x per dag

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 volgende »

Ozzie PHP

Ozzie PHP

18/11/2011 21:54:00
Quote Anchor link
Hallo,

Stel ik wil een aantal zaken in mijn cms-systeem 1x per dag laten uitvoeren... is dan de beste manier om dit via een cronjob te doen? Het liefste zou ik geen cronjob gebruiken, zodat ik mijn cms-systeem ook kan gebruiken op een server die geen cronjobs ondersteunt.

Is er een slimme manier waarop je een aantal zaken 1x per dag kunt laten uitvoeren?

Ik kan me voorstellen dat je in de database de datum opslaat waarop de dagelijkse wijzigingen zijn uitgevoerd. En dan zou je telkens als iemand de site aanroept moeten controleren of de datum verschillend is, zo ja dan de dagelijkse zaken uitvoeren en de datum weer opslaan. Of is er een slimmere manier?
 
PHP hulp

PHP hulp

28/01/2023 15:16:44
 
Fabian M

Fabian M

19/11/2011 10:52:19
Quote Anchor link
Je zou het kunnen checken per request. Maar je zit met het probleem als er op een dag niemand je site bezoekt.
 
Ozzie PHP

Ozzie PHP

19/11/2011 11:55:44
Quote Anchor link
Fabian, dankjewel voor je reactie. Je moet denken aan "opschoonwerkzaamheden". Cache bestanden leegmaken dat soort dingen. Het zou niet erg zijn als dat een dag niet gebeurt omdat je die dag dan toch geen bezoekers hebt. Maar zodra er dan weer een bezoeker op de site komt dan worden de werkzaamheden alsnog uitgevoerd. Dus als er een dag wordt overgeslagen is het op zich niet zo erg.

Maar wat ik me afvraag is of er nog een andere manier is? Of moet je echt bij elk request de datum in de database gaan checken?
 
Synaps Framework

Synaps Framework

19/11/2011 14:29:09
Quote Anchor link
Je kunt toch ook dit verwerken in de class welke je cache maakt?
 
Jordi Kroon

Jordi Kroon

19/11/2011 14:54:12
Quote Anchor link
Ik zou met cache opruiming dit doen bij een request en dan kijken of er niet nog een cache opruiming is geweest deze dag. Waarom ? Nou als er niemand online is geweest die dag is er ook geen cache / activiteit op je website. Waarom zou je dat dan deleten als het er toch niet is.
 
Niels K

Niels K

19/11/2011 14:58:10
Quote Anchor link
Ik zou het gewoon via een cron doen. Ik kan geen enkele hosting opnoemen die cronjobs niet ondersteund?
 
Ozzie PHP

Ozzie PHP

19/11/2011 16:42:29
Quote Anchor link
@Synaps: maar dan wordt het toch nog steeds bij iedere aanroep gecontroleerd?

@jordi: dat zou kunnen, maar dat betekent volgens mij nog steeds dat bij iedere pagina request gecontroleerd moet worden

@Niels: oké, dat wist ik niet. Maar ik heb nooit met cronjobs gewerkt en dan moet je dat telkens voor ieder project instellen. Wat dat betreft zou het wel handig zijn als het standaard in het framework is geintegreerd. Maar stel dat je inderdaad die controle bij iedere request uitvoert, kan dit dan "kwaad"? Gaat bijvoorbeeld je performance erop achteruit? Of hoef ik daar niet echt bang voor te zijn?
 
Niels K

Niels K

19/11/2011 16:44:46
Quote Anchor link
Hoi Ozzie,

Nou dat ligt aan het aantal cache files. En ja, inderdaad moet je bij elk project een cronjob instellen, maar wat geeft dat?

Ik zou gewoon een cron maken die de cache directory doorloopt, en aan de hand van de aamaakdatum/tijd van de file de files verwijderd..

Niels
 
Ozzie PHP

Ozzie PHP

19/11/2011 16:48:27
Quote Anchor link
Niels Kieviet op 19/11/2011 16:44:46:
Hoi Ozzie,

Nou dat ligt aan het aantal cache files. En ja, inderdaad moet je bij elk project een cronjob instellen, maar wat geeft dat?

Ik zou gewoon een cron maken die de cache directory doorloopt, en aan de hand van de aamaakdatum/tijd van de file de files verwijderd..

Niels


Niels, ik had dan in gedachten om per request alleen 1 timestamp te controleren. Misschien zelfs wel 1x per sesie. Als de huidige datum gelijk is aan de datum in de databse dan doe je niks. Als de datum ongelijk is dan ga je alle dagelijkse handelingen uitvoeren. is dat een idee? Er hoeft dan maar 1 database veld controle plaats te vinden.
 
Niels K

Niels K

19/11/2011 16:50:34
Quote Anchor link
Ozzie,

Tja het kan wel.. Maar waarom wil je zo moeilijk doen als het gewoon simpel met een cron kan? Nu moet je extra controles bouwen terwijl je daar met een cron gewoon vanaf bent.

En als een host geen cron ondersteund moet je, jezelf dan niet afvragen of het wel een goede host is?

Niels
 
Ozzie PHP

Ozzie PHP

19/11/2011 16:54:25
Quote Anchor link
Ik heb nog niet eerder met cronjobs gewerkt. Weet je toevallig een tutorial?

Ook zit ik wel eens in een situatie dat ik zelf niet bij de serverinstellingen kan dus dat maakt het allemaal en stukje lastiger. Vandaar dat ik het wel prettig zou vinden als ik niet perse aan cron gebonden ben...
 
Niels K

Niels K

19/11/2011 16:56:28
Quote Anchor link
Ozzie,

Google maar eens op `Hoe werkt cronjob`. Dan krijg je genoeg resultaten ;-)

Mmm, tja misschien moet je dan toch je idee iets uitwerken en per request gaan controleren of er files zijn die opgeruimd moeten worden.

Niels
 
Ozzie PHP

Ozzie PHP

19/11/2011 17:03:49
Quote Anchor link
Niels, zal ik doen.

Maar mijn idee is dus (globaal) dit:

- Check 1x per sessie de huidige datum.
- Datum gelijk aan datum in database dan niks doen.
- Datum ongelijk aan datum in database dan de bewerkingen uitvoeren en de datum in de database wijzigen naar de huidige datum.

Wat vind je daarvan? Goed idee? Ben ik nog iets vergeten?
 
PHP Scripter

PHP Scripter

19/11/2011 19:29:00
Quote Anchor link
Ozzie PHP op 19/11/2011 17:03:49:
Niels, zal ik doen.

Maar mijn idee is dus (globaal) dit:

- Check 1x per sessie de huidige datum.
- Datum gelijk aan datum in database dan niks doen.
- Datum ongelijk aan datum in database dan de bewerkingen uitvoeren en de datum in de database wijzigen naar de huidige datum.

Wat vind je daarvan? Goed idee? Ben ik nog iets vergeten?


Ik zal het anders oplossen. Ik neem aan dat je alle bezoekers sowieso opslaat in de database; dan kun je toch checken of het de eerste bezoeker is van die dag, dat kost je echt geen performance. Desnoods schrijf je daarna in een settings tabel weg dat de cache voor vandaag al geleegd is, dan hoeft hij dat ook niet meer te controleren.

Als het de eerste bezoeker is? Dan de hele cache map leeg donderen.
 
Ozzie PHP

Ozzie PHP

19/11/2011 19:40:40
Quote Anchor link
Hoe controleer je of iemand de 1e bezoeker is en wat is het verschil om te controleren of het de 1e bezoeker van de dag is met mijn idee? Je moet dan toch nog steeds bij elke bezoeker iets controleren? Wat is het verschil / voordeel dan precies ten opzichte wat ik voorstelde? (datum controleren)
 
PHP Scripter

PHP Scripter

20/11/2011 20:13:18
Quote Anchor link
Ozzie PHP op 19/11/2011 19:40:40:
Hoe controleer je of iemand de 1e bezoeker is en wat is het verschil om te controleren of het de 1e bezoeker van de dag is met mijn idee? Je moet dan toch nog steeds bij elke bezoeker iets controleren? Wat is het verschil / voordeel dan precies ten opzichte wat ik voorstelde? (datum controleren)


Denk er maar eens over na! ;-)
 
Ozzie PHP

Ozzie PHP

20/11/2011 20:31:04
Quote Anchor link
Dat heb ik gedaan maar ik weet het antwoord niet... dus vertel...
 
Nick Dijkstra

Nick Dijkstra

20/11/2011 21:07:16
Quote Anchor link
Niels Kieviet op 19/11/2011 14:58:10:
Ik zou het gewoon via een cron doen. Ik kan geen enkele hosting opnoemen die cronjobs niet ondersteund?


Mijndomein.nl ondersteund geen cronjobs.
 
Ozzie PHP

Ozzie PHP

21/11/2011 20:34:15
Quote Anchor link
Weet iemand wat PHP Scripter bedoeld????????

Of zou hij het zelf soms ook niet weten ;-)
 
Niels K

Niels K

21/11/2011 20:39:14
Quote Anchor link
Quote:
Ik neem aan dat je alle bezoekers sowieso opslaat in de database


En als je dat niet doet? Wat heeft het voor nut om alle bezoekers op te slaan?

@Ozzie,

Lees het verhaal van hem nog eens? Hij bedoeld, alle bezoekers staan in een bepaalde tabel, wanneer er deze dag nog geen records in de database zijn gezet is dat dus je eerste bezoeker.. Aan de hand daarvan de cache legen.

@nick,

Ik had het over een echte hosting .. ;-)
 
Ozzie PHP

Ozzie PHP

21/11/2011 21:10:52
Quote Anchor link
Niels, sorry... ik snap het nog steeds niet :-s

Ten eerste sla ik (denk ik) niet alle bezoekers op, maar wat bedoel jij met:

"Hij bedoeld, alle bezoekers staan in een bepaalde tabel, wanneer er deze dag nog geen records in de database zijn gezet is dat dus je eerste bezoeker.."

Dan moet je toch nog steeds bij iedere aanroep gaan controleren of iemand de 1e bezoeker is?? Ik geloof dat ik iets mis nu, maar ik heb geen idee wat dat is???
 

Pagina: 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.