Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2015
    Messaggi
    4

    Error 500 e loop bloccato

    Ciao a tutti!
    Forse sarà una domanda stupida ma non capisco se sbaglio io o c'è qualche impostazione per evitarlo xD

    Sto lavorando a un progetto, ho scritto una pagina php che effettua un loop continuo (do while 1), durante questo ciclo viene analizzata una directory e se trovo dei file li elaboro e salvo i dati in un db.

    L'elaborazione e il salvataggio vanno benissimo, il problema è che dopo neanche un paio di minuti la pagina smette di caricare e "Errore 500". Non ho trovato molto a riguardo, mi pare di aver capito che sia un errore molto generico. Escluderei che l'elaborazione dei file dia problemi in quanto tutti i file sono binari e hanno lo stesso identico formato (quindi se funziona uno devono funzionare tutti).
    Mi vien da pensare piuttosto che sia causato dalla sessione che va in overtime o l'host che rileva anomalie, è possibile? (nb. succede sia senza lavorare con le sessioni, sia avviandone una con un lifetime più alto)

    Un'altra domanda probabilmente ancora più idiota, è possibile creare una pagina, un estensione, un plugin per cms.. qualunque cosa, che venga avviato nell'host e continui a operare ciclicamente (nel mio caso la scansione di directory e elaborazione file) senza dover tenere aperta una pagina del browser?

  2. #2
    Non puoi lasciare uno script in esecuzione infinita, viene killato una volta trascorso il max execution time.
    Per fare quello che chiedi devi utilizzare un'operazione schedulata sul server (cron job o altro equivalente a seconda del sistema operativo).

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2015
    Messaggi
    4
    Immaginavo qualcosa del genere, purtroppo sono più incentrato sulla programmazione Win e php non è proprio il mio campo
    Ho provato inserendo un reindirizzamento, nella pagina dell'errore, che mi rimandasse indietro.. così funziona "all'infinito" solo che dopo un po' mi esce un'altro errore che non è nemmeno identificato (tipo "impossibile ricaricare la pagina, contattare il proprietario del sito").

    In sostanza serve per forza un server virtuale? solo con l'host non è possibile?

  4. #4
    L'idea e' che uno script PHP viene eseguito, fa quello che deve e termina. Non e' previsto lo scenario in cui uno script gira "in esecuzione permanente", e' proprio un paradigma che non fa parte dell'ambito web app PHP.

    Quello che devi fare e' - appunto - uno script che esegue le operazioni che ti servono e finisce li'. Poi fai in modo di lanciare quello script a intervalli regolari.

    Per fare questo ci sono due possibilita': la prima e' usare un servizio di schedulazione sul server su cui si trova il tuo script (cosa che in genere un hosting fornisce), la seconda e' chiamare quello script dall'esterno. Per quest'ultima possibilita' puoi artigianalmente schedulare la chiamata sul tuo computer o usare un servizio online che lo fa (cerca "cron service" su google - DISCLAIMER non ne ho mai provato nessuno quindi non so quanto siano affidabili).

  5. #5
    Utente di HTML.it L'avatar di Leoz83
    Registrato dal
    Feb 2004
    residenza
    Brindisi
    Messaggi
    39
    Se non è necessaria l'esecuzione su un web server remoto, installa XAMPP e imposta
    Codice PHP:
    ini_set('max_execution_time'600); 
    nello script.
    un ora dovrebbe bastare


  6. #6
    Quote Originariamente inviata da Leoz83 Visualizza il messaggio
    Se non è necessaria l'esecuzione su un web server remoto, installa XAMPP e imposta
    Codice PHP:
    ini_set('max_execution_time'600); 
    nello script.
    un ora dovrebbe bastare

    Secondo me e' meglio una soluzione ben fatta che un'impostazione che ti puo' far bloccare la macchina.

    Comunque se si parla di PHP eseguito su una macchina in locale, allora impostare un'operazione programmata e' ancora piu' semplice (sempre che windows lo permetta )

  7. #7
    Utente di HTML.it L'avatar di Leoz83
    Registrato dal
    Feb 2004
    residenza
    Brindisi
    Messaggi
    39
    Quote Originariamente inviata da k.b Visualizza il messaggio
    Secondo me e' meglio una soluzione ben fatta che un'impostazione che ti puo' far bloccare la macchina.
    Se non è un'operazione one shot condivido il tuo ragionamento.
    Diversamente, con due calci e due pugni parte tutto ugualmente senza perderci dietro troppo tempo

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2015
    Messaggi
    4
    Si ecco il mio problema è proprio avere un servizio che gira sostanzialmente all'infinito xD o comunque che possa avviarsi automaticamente (tipo ogni ora) e effettui l'analisi. In xampp ho già provato con l'ini_set ma il problema è che in locale non mi basta..

    La schedulazione se fosse disponibile su un host mi andrebbe benissimo.. che voi sappiate non c'è qualche servizio gratuito (altervista o simili) che la mette a disposizione?

  9. #9
    Quote Originariamente inviata da hosaz Visualizza il messaggio
    Si ecco il mio problema è proprio avere un servizio che gira sostanzialmente all'infinito xD o comunque che possa avviarsi automaticamente (tipo ogni ora) e effettui l'analisi. In xampp ho già provato con l'ini_set ma il problema è che in locale non mi basta..

    La schedulazione se fosse disponibile su un host mi andrebbe benissimo.. che voi sappiate non c'è qualche servizio gratuito (altervista o simili) che la mette a disposizione?

    Quote Originariamente inviata da k.b Visualizza il messaggio
    ...usare un servizio online che lo fa (cerca "cron service" su google - DISCLAIMER non ne ho mai provato nessuno quindi non so quanto siano affidabili).
    .
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2015
    Messaggi
    4
    Scusate l'ignoranza, ho fatto un po' di confusione e mi ero convinto che fosse un servizio lato client >.<

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 © 2024 vBulletin Solutions, Inc. All rights reserved.