webForumDet fria alternativet

Automatisera 3h process

7 svar · 470 visningar · startad av dreas

dreasMedlem sedan jan. 2004140 inlägg
#1

Hej,

Jag har funderat och sökt kring detta problem jag har för närvarande.
Det är så att jag skulle vilja köra igång en sida, troligtvis med CronJob, som innehåller PHP kod. Denna (samma) kod körs i processer med ca 5 min mellanrum och ska köras under ca 3 timmar.

Frågan är alltså hur jag kan, efter en exekvering av CronJob, låta denna sida "leva" i 3h, och låta samma kod köras med 5 min mellanrum? Finns det någon funktion i PHP för detta?
Jag vill helst slippa använda CronJob för att trigga sidan med 5 min mellanrum under ett intervall, men är det det enda sättet är jag tacksam för förslag på hur den cronjoben ser ut.

tydalMedlem sedan juni 20034 013 inlägg
#2

Varför vill du slippa använda Cron? Det är ju avsett just för såna saker, så det skulle jag ha använt.

I Cron så anger du fem värden för att tala om när kommandot ska utföras. I tur och ordning innebär de följande:

+ minut
+ timme
+ dag
+ månad
+ veckodag

I ditt fall vill du alltså köra var femte minut. Då anger man */5 på minut. Sen vill du att det bara ska köras vissa timmar, säg exempelvis mellan klockan 2 och 5. Då skriver du 2-5 på timme. Övriga saker ska inte ha någon påverkan, så då skriver du * där.

Alltså:

*/5 2-5 * * * php ~/ditt-phpskript.php

dreasMedlem sedan jan. 2004140 inlägg
#3

Hmm, okej.. tanken jag hade var att använda Cron till att köras i princip varje timme till en sida, som kontrollerar ifall det är aktuellt att köra den här php koden jag pratar om (den som ska vara igång 3h med 5min mellanrum).

För om jag lägger in det direkt i cron så måste jag veta vilka dagar m.m. som dessa 3h är aktuella, och jag hade hellre velat ha en universell lösning. Anledningen till detta är med tanke på framtida behov och för att undvika denna administrationen.
Jag är iaf fortfarande nyfiken på ifall det går att lösa på det sättet jag vill, i annat fall får det bli cron likt det förslag du har tydal.

tydalMedlem sedan juni 20034 013 inlägg
#4

Att låta ett phpskript köra i tre timmar känns inte som ett alternativ. Det är inte konstruerat för att användas på det viset. Men du kan ju låta phpskriptet få avgöra om det ska köras eller ej. Alltså, att du lägger en if-sats först som kollar om villkoren är uppfyllda, och så lägger du in i cron så det startas så många gånger det max kan bli frågan om.

dreasMedlem sedan jan. 2004140 inlägg
#5

Jo, det får ju bli något sånt.. så man undviker att köra onödig kod och spara på serverns resurser. Men vad säger webbhotell och annat gällande att köra många Crons? Blir detta en avsevärd belastning för dem, att den ska exekvera en sida relativt ofta?

TroxyMedlem sedan mars 20041 505 inlägg
#6

PHP är ett script-språk för att leverera hypertext till webbläsare, inte köra avancerade operationer i 3 timmar. :P
Visst, man använder det kan kan, men detta borde verkligen göras med något fullfjättrat programspråk i stället.

dreasMedlem sedan jan. 2004140 inlägg
#7

Sant Troxy.. det är väl till och med kanske lämpligt att titta mer på Java lösningar m.m. Men i nuläget får jag nöja mig med Cron och så får vi se hur belastningen blir. Tror det dock är okej, då det kommer ske typ en gång i veckan.
Tack för reflektionen dock!

TroxyMedlem sedan mars 20041 505 inlägg
#8

Lycka till :)
Hm, nu för tiden kan man väl köra PHP standalone med CLI? Åtminstone på Linux tror jag...

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)