wie kan mij helpen om een script dat telkens opnieuw word uitgevoerd via een lus na 65 minuten te laten stoppen.
Zonder inhoudelijke informatie is het lastig om een goed antwoord te geven.

- Welk operating systeem?
- Hoe voer je het uit?

En nog belangrijker:
- Waarom stopt het niet automatisch?
Het is ook de bedoeling dat het script door draait.
Ik zoek iets met time() en het dan over de opgeven tijd te laten stoppen

Ik voer het uit via de brouwser
En wat als je halverwege (per ongeluk) de browser afsluit? Dan heb je dus een half uitgevoerd script en mogelijke inconsistentie in je data die je verwerkt.

Of gebruik je ignore_user_abort()?

Welk operating system wordt er gebruikt op de server?
Als ik halverwege afsluit werkt het niet meer vandaar dat ik graag de tijd wil opgeven bijv. /3600

Op de sever draait Linux
Waarom draai je het niet via een cronjob?
Die draait op de achtergrond op de server. Zorg er wel voor dat het script netjes beëindigd wordt als iets niet goed gaat of de transactie (waarvan ik hoop dat je die gebruikt) een 'roll-back doet'.
Direct bovenaan in je PHP script:
set_time_limit(65 * 60)
En er dan vanaf blijven (geen nieuwe time-out instellen).

Bij een cron-job (CLI aanroep) staat de timeout standaard op "oneindig", en dan blijft ie dus door draaien.

Toch zou het netter zijn om bijvoorbeeld na elke "stap" (ik neem aan dat het script iets in herhalende stappen doet) even te kijken hoe lang je al bezig bent (time() nu tov bij aanvang), en dan na 65 * 60 seconden niet meer aan een nieuwe stap te beginnen, maar gewoon netjes af te sluiten.
Als je niet via een cronjob kan draaien. Houd dan wel netjes bij welke te verwerken items je al wel hebt verwerkt. Als er iets misgaat, dan kan je weer verder gaan waar je gebleven was.

Maar mijn voorkeur gaat uit naar cronjobs. Die draaien gewoon oneindig door (waarom is dat weggestreept?)
set_time_limit(65 * 60)

betekend set_time_limit(2 * 60)dat het script 2 minuten draait? (dit om het testen te verkorten)

Klopt. En de andere is 3900 sec = 65 minuten.
Bedankt voor jullie reacties, ik ga er mee aan het stoeien

Reageren