Sleep functie op een while loop

  • Goedemorgen,


    Ik moet een groot aantal records aanpassen (bijsnijden van afbeeldingen), gaat hier om ongeveer 4.000 records.
    Deze moeten wel allemaal bijgewerkt worden, het tijdelijk bijwerken van de server werkt niet echt, mis hierbij een groot aantal zonder foutmelding.


    Nu wil ik met de sleep() functie van PHP een loop maken die na bijvoorbeeld elke 50e record een 10 seconden rust houd en daarna weer verder gaat.
    Is er eventueel een andere oplossing waarvan jullie weten, de sleep functie stopt al na de eerste keer en stelt een 10 seconde rust in zonder verder te gaan.


    Ik hoef geen voorbeeld codes, een uitleg via website of een functie die geschikt is moet voldoende zijn om het verder uit te kunnen werken.


    Alvast bedankt!

  • Wat je denk ik zou kunnen doen is dus inderdaad een loop maken.


    In die loop roep je een aparte functie aan die het bijsnijden regelt. in die aparte functie geef je een boolean sleep mee.


    In de loop kijk je dan of er 50 records ofzo gedaan zijn, als dat zo is zet je in de parameter sleep op true.


    In de aparte functie kijk je vervolgens of sleep == true is waarna je sleep(10) doet. Geen idee of het precies zo zou werken maar dat zou je kunnen proberen..

  • Ik heb inmiddels via de query wat vertragingen gemaakt, dat hij per onderdeel gaat, dit zijn echter nog steeds 1.500 records per onderdeel.
    Hij stopt na ongeveer 1.100 records omdat hierbij de nginx bescherming ingeschakeld word, die ga ik denk maar even uitzetten voor deze opdracht.

  • Wat is exact een record?
    Is dit een bestand of een mysql record?


    Want worst case kun je ook mysql de sleep functie gebruiken indien het mysql is:
    SELECT SLEEP(5);


    Wat je ook kan doen is een redirect inbouwen in je php pagina.
    1) hij werkt 50 records af en stopt. Je bouwt een redirect in met een delay van 5 seconden naar dezelfde pagina met bestand.php?start=50
    2) de redirect opent de url met parameter 50 en begint vanaf daar verder te gaan. Hij stopt na 50 records en redirect naar $start+50 = 100 => bestand.php?start=100


    Je kan perfect met meta tags of met php een redirect doen na een aantal seconden.

  • @K.Rens
    Bedankt voor je antwoord, het gaat hier om afbeeldingen die in de database opgeslagen staan.
    Met die records weet ik de exacte locatie van alle afbeeldingen en zo roep ik ze dan ook aan.


    Aangezien dit een éénmalige opdracht wordt ga ik de verwerkingstijd opschroeven en nginx tijdelijk uitschakelen.
    Via die manier kan ik iets meer uitvoeren dan normaal gesproken de bedoeling is, hopelijk lukt het hier wel mee.

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!