Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    102

    Fatal error: Maximum execution time of 120 seconds exceeded

    Ciao a tutti,
    ho uno script batch di tipo BAT che lancio sotto DOS con un :

    codice:
    C:\php\php.exe "D:\htdocs\dir_mia\test.php"
    Dopo alcuni minuti compare questo messaggio di errore con un termine forzato della procedura con:
    Codice PHP:
    Fatal errorMaximum execution time of 120 seconds exceeded 
    Questo messaggio non dovrebbe comparire lanciando uno script pesante da web?

    Ho controllato in php.ini ma non c'è alcun parametro con questo valore di 120

    Qualcuno sa darmi qualche consiglio?

    Grazie

  2. #2
    hai 2 modi per risolvere il problema:
    - via codice, puoi usare set_time_limit
    - nel php.ini (presumo c:\php\php.ini) puoi cambiare max_execution_time
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    102
    Avevo già provato con entrambe le soluzioni ma da lo stesso messaggio.
    Grazie

  4. #4
    va in timeout lo script aumenta il tempo come indicato. Certo che se devi fare 12 milioni di record a botta di script, lo dovrai aumentare parecchio questo tempo di esecuzione... fai pure delle query nel ciclo, mi immagino io...

    ma perchè non implementi la funzione di aggiornamento direttamente nel mysql e la fai richiamare da php o come ti pare?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    102
    Originariamente inviato da Santino83_02
    va in timeout lo script aumenta il tempo come indicato. Certo che se devi fare 12 milioni di record a botta di script, lo dovrai aumentare parecchio questo tempo di esecuzione... fai pure delle query nel ciclo, mi immagino io...
    Sai; non mi convince il fattore timeout per due motivi: Primo perchè i record che deve leggere sono poche centinaia; secondo perchè utilizzo altri script identici che durano anche 10 ore!

    ma perchè non implementi la funzione di aggiornamento direttamente nel mysql e la fai richiamare da php o come ti pare?
    Semplice! non lo so fare. Se mi suggerisci qualche link o qualche dritta a riguardo
    te ne sarei grato.

    Ancora grazie.

  6. #6
    scusa, chiariamo una cosa ... il fattore timeout potrà anche non convincerti ma se ricevi
    Fatal error: Maximum execution time of 120 seconds exceeded
    indubbiamente convince php

    tranne che hai postato l'errore sbagliato ^^
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    102
    Ragazzi scusate. Mi vergogno come un ladro.

    Nel panico non ho visto che nello script avevo dimenticato di eliminare
    Codice PHP:
    set_time_limit(120); 
    Grazie ancora e di nuovo scusatemi

  8. #8


    se vuoi risolvere totalmente il problema ora ed in futuro, molto semplicemente metti il set_time_limit nel ciclo perché ogni volta che lo richiami non reimposta semplicemente il limite del tempo di esecuzione ma resetta anche il contatore del timeout!

    quindi se lo metti nel ciclo lo script non ti durerà 2 minuti ma piuttosto un singolo giro del ciclo al massimo potrà durare 2 minuti (come misura precauzionale ... non si sa mai )
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

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.