Visualizzazione dei risultati da 1 a 7 su 7

Discussione: controllo timeout

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    443

    controllo timeout

    L'intenzione era di fermare il ciclo di sepdizione di una newsletter ogni 30 emails per 3 secondi e resettare il timeout per evitare un timeout nell'esecuzione dello script che deve spdire + di 1000 email, ma il loop non si ferma!

    Qualche idea?

    Grazie


    Codice PHP:
    while (!$query->EOF) {

    //INIZIO CONTROLLO timeout
    $x 1
    $ogni 30
    $x++; 
    if(
    $x == $ogni) { 
    set_time_limit(30); 
    sleep(3); 
    $x 0
    }
    //FINE CONTROLLO timeout


    $mail->Body    $body;
    $mail->AddAddress($query->Fields('email'), "");


    .........


    $query->MoveNext(); 


  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    15
    e se semplicemente metti in testa allo script set_time_limit(0)?

    Zero non vuol dire "zero secondi" ma rimuove il time out di esecuzione

  3. #3
    quindi basterebbe mettere all'inizio allo script set_time_limit(0)?

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    15
    Originariamente inviato da carlosk
    quindi basterebbe mettere all'inizio allo script set_time_limit(0)?
    Yes!!!!

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    443
    grazie per le Vostre risposte,

    la routine di controllo, oltre a controllare il timeout, dovrebbe anche servire a non "tirargli il collo" al server, per permettere nel frattempo anche l'esecuzione di altre applicazioni.

  6. #6
    codice:
    while (!$query->EOF) { // ma EOF non significa End Of File ? cos'e' ?
    
    //INIZIO CONTROLLO timeout
    $x = 1; // e x lo mettiamo a 1
    $ogni = 30; // e ogni lo mettiamo a 30 
    $x++; // e x diventa 2
    if($x == $ogni) { // come fai ? ... qui $x sara' sempre 2
    set_time_limit(30); // non avverra' mai
    sleep(3); // non avverra' mai
    $x = 0; // non avverra' mai
    }
    //FINE CONTROLLO timeout

    inoltre usi un ciclo while come se questo fosse un "idle", mentre blocca solo l' esecuzione dello script finche' non e' finito o non viene chiuso ... mica chiaro cosa volevi fare
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    443
    Grazie andr3a,

    uso PHP ADODB per la connessione al DB


    comunque ho risolto mettendo $x davanti a while



    Codice PHP:

    $x 
    1;

    while (!
    $query->EOF) {

    //INIZIO CONTROLLO timeout
    $ogni 30;
    $x++;
    if(
    $x == $ogni) {
    set_time_limit(30);
    sleep(3);
    $x 0;
    }


    $mail->Body    $body;
    $mail->AddAddress($query->Fields('email'), "");


    .........


    $query->MoveNext(); 
    }
    //FINE CONTROLLO timeout 

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.