Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Evitare errore 503

  1. #1
    Utente di HTML.it L'avatar di Scream
    Registrato dal
    Apr 2002
    Messaggi
    228

    Evitare errore 503

    Ciao a tutti quanti, ho un problema di questo tipo.
    Dovrei verificare l'esistenza o meno degli indirizzi email presenti in database.
    Trovata una classe che fa una connessione SMTP e restituisce un errore in caso di problemi oppure no, la inserisco in uno script che non fa altro che recuperare tutti gli indirizzi email (circa 30.000) dal database.
    A questo punto si presenta il problema, in quanto se limito la query ai primi 10 indirizzi, va tutto bene, ma nel momento in cui tolgo il limite alla query, ottengo un:

    Service Unavailable
    The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

    Ho provato con un set_time_limit(0) ad inizio script, ma ovviamente non funziona.
    Penso che l'unico modo sia lanciare a mano 10 record alla volta, ma non saprei come fare (a mano LIMIT 10, poi LIMIT 10 OFFSET 10, poi LIMIT 10 OFFSET 20, ecc.? non finisco più).
    C'è un modo per fare un refresh automatico della pagina dopo i primi 10 record, eseguire i 10 successivi, ecc?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Basta che metti le query in un ciclo for, ad ogni ciclo fai cambiare i valori di LIMIT ed OFFSET incrementandoli di quanto vuoi (suppongo che di indirizzi possa recuperarne anche più di 10 alla volta) e alla fine ci metti uno sleep(qualche secondo).

  3. #3
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Forse non ho capito, ma il server da errore perché il recordset è troppo grande?
    Oppure l'errore lo da quando mandi la e-mail?

  4. #4
    Utente di HTML.it L'avatar di mt19
    Registrato dal
    Jul 2011
    Messaggi
    180
    probabilmente è un limite imposto dal tuo hosting. In ogni caso la soluzione posta soprastante mi sembra la più semplice:

    Codice PHP:
    for($i 0$i 30000$i $i 10)
    {
    //fai la query e metti limit 10 offset $i
    sleep (3);

    Ultima modifica di mt19; 25-08-2014 a 22:45

Tag per questa discussione

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.