[Risolto] Aruba + Crontab postato il 29/12/2012 15:25:27 nel forum programmazione, gdrcd e open source e modificato da darkabe il 29/12/2012 18:48:10
Per la prima volta mi sono ritrovato ad usare il servizio di crontab, pensando fosse meno problematico di quanto si stia rivelando essere. Anche se probabilmente il fatto che sia problematico è dovuto ad Aruba, che non è nuova a questi giochetti.
Ho la necessità di far partire più script ad orari diversi, riassumibili in due principali categorie:
1) Un aggiornamento giornaliero (alla mezzanotte) che provvede alla pulizia dei dati obsoleti ed all'assegnamento di eventuali retribuzioni, exp e quant'altro.
2) Un aggiornamento costante (ogni 6 ore, a partire dalle 2 di notte) che mi gestisca altre funzioni come il cambiamento climatico e simili.
Ho racchiuso tutto in un file PHP (perché Aruba ha il vincolo ad un crontab) che quando richiamato controlla automaticamente l'orario corrente. Se questo è dentro uno degli intervalli a me utili fa partire quel che deve, altrimenti nulla.
Ho creato l'apposita operazione pianificata con il pannello messo a disposizione da Aruba, in modo da chiamare questa pagina ogni ora. La pagina effettivamente viene richiamata, ma le operazioni contenute al suo interno non vogliono saperne di eseguirsi!
Ho fatto diversi test per capire la natura di questo "non funzionamento" provando a creare un file txt piuttosto che a lanciare una query. Il risultato è che l'operazione funziona solo quando non interagisce con un database. Per esser più corretti vi faccio vedere come:
Pagine → 1
29/12/2012 15:49:20
fileacaso2.txt viene creato?
Se non viene creato vuol dire che lo script incontra un errore fatale prima di arrivare a quel punto.
Secondo me il file viene eseguito nel contesto sbagliato. Quando lo esegui manualmente usi lo stesso URL che hai inserito nel cronjob?
29/12/2012 15:57:20 e modificato da darkabe il 29/12/2012 16:08:46
No, il secondo file di testo non viene creato affatto. Non ci arriva proprio a quella parte di codice.
Non capisco perché eseguendo la stessa pagina a mano (vado sullo stesso link che ho inserito su aruba) scrive entrambi e file ed esegue la query, in modo automatico si blocca..
--UPDATE
Ho copiato la stringa di connessione al DB e l'ho inserita all'interno della pagina, ed ha mandato in esecuzione la query ed ha anche creato il file 2!
Le possibilità si riducono a due:
1) Qualcosa con l'include che non gli piace
2) Qualcosa dentro la pagina delle funzioni che non gli piace
Provo ad andare per step. Faccio copiaincolla delle funzioni che effettivamente uso nello script, vediamo che succede..
29/12/2012 18:38:17
Come al solito l'errore più complicato è il più stupido che possa esistere!
Copiando le istruzioni nella pagina lo script ha iniziato a lavorare per come doveva, quindi mi sono insospettito ed ho riguardato meglio la pagina inclusa. Mi era totalmente passato di mente che per fare questo aggiornamento ho avuto necessità di bloccare per un po' l'accesso a tutti gli user, e come uno stupido ho inserito un controllo sull'ip dei visitatori all'interno della pagina di connessione, così da essere totalmente sicuro che non ci fossero visitatori inaspettati!
Ovviamente quando lo avviavo manualmente il controllo rilevava il mio ip e mi faceva passare.. peccato solo che aruba non abbia il mio stesso ip! Infatti mi è bastato abbattere quel controllo momentaneo ed ha iniziato ad andare!
Come fare belle figure aGGratis! GGià!!
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
mirmidone ha risposto alla discussione: Una land con forti elementi d'ispirazione di Dragonero?