Aumentare Valore ogni ora
Pagine → 1 2
17/08/2011 23:09:26 e modificato da leoblacksoul il 17/08/2011 23:10:19
Il path di php non centra. wget richiede la pagina attraverso la rete, non in locale.
può essere che il tuo server non abbia wget (O.o strano), puoi provare ad usare un altro comando, tipo lynx.
Ti metto qui i tre tipi di comandi che puoi provare ad usare:
/usr/bin/lynx -source http://example.com/cron.php >/dev/null 2>&1
/usr/bin/wget -O - -q -t 1 http://www.example.com/cron.php >/dev/null 2>&1
curl --silent --compressed http://example.com/cron.php >/dev/null 2>&1
Abbiamo già provato wget, e non va. Prova uno degli altri due e vedi. Volendo puoi togliere l'ultima parte " >/dev/null 2>&1" così dovrebbe arrivarti un email con il contenuto dell'operazione. L'indirizzo a cui arriva l'email cambia in base alla configurazione del server e di cpanel; dovrebbe essere l'email del tuo utente sul server.
18/08/2011 21:41:44
Ebbene con:
/usr/bin/lynx -source http://example.com/cron.php >/dev/null 2>&1
FUNZIONA!
Grazie mille :-)
23/03/2013 14:31:30
Buongiorno a tutti...
Riapro questo post perché oggi, dopo anni di funzionamento perfetto, il cron job suddetto ha smesso di fare il suo dovere...
Ora, premesso che non ho toccato il file php ne il cron job stesso, mi sembra strano che così, di punto in bianco smetta di funzionare...
Vi chiedo quindi, tante di quelle volte qualcuno usasse lo stesso hostin (pegaso hosting) se anche voi state riscontrando problemi o se avete qualche idea su cosa potrebbe essere successo.
Grazie a tutti ^^
23/03/2013 15:09:06 e modificato da ilgrandeinverno il 23/03/2013 15:13:35
Un'alternativa se non vuoi ricorrere ai crojobs é anche di ottimizzare la query evitandoti tutte quelle select, facendo una query di update condizionata.
Se non devi usare i valori dell'ultimo update (orario) e dell'esperienza/PF in altri punti della pagina (es. per mostrarli esplicitamente nella pagina) puoi fare qualcosa di questo tipo:
<?php
$ORA = time();
$LIMITE = $ORA - 600;
$q = "UPDATE NOME_TABELLA SET ";
$q .= "PF=PF+1, LASTUPDATE='$ORA' ";
$q .= "WHERE PF < '100' AND LASTUPDATE < '$LIMITE' AND LOGGATO > '0'";
mysql_query($q) or die('A morte Ghennadi! '.mysql_error());
?>
Le clausole WHERE scrite così fanno sì che vengano aggiornati solo quei record in cui il valore dei PF non é già a 100 e in cui l'ultimo aggiornamento é avvenuto prima degli ultimi 10 minuti.
In pratica ti risparmi le query di select per estrarre l'orario di ultimo aggiornamento e il valore attuale dei PF per confrontarlo col valore limite di 100.
Quello che ti é stato detto sul numero di utenti online che non dovrebbe impattare troppo pesantemente usando i cronjobs vale anche per l'uso di query singole innescate dal singolo personaggio online.
Noi per questo tipo di operazioni abbiamo optato per una scelta ibrida. La mattina presto un singolo cronjob innesca tutta una serie di operazioni di manutenzione (compresi gli update e cancellazioni massive di record, le funzioni statistiche ecc). E durante il resto del giorno query di update a impatto minore vengono innescate direttamente dai personaggi, tramite il richiamo di funzioni con uno "schedulatore" interno al motore di gioco che esegue determinate operazioni solo se si verificano certe condizioni (es. orario, numero di esecuzioni già registrate, intervallo dall'ultima esecuzione, ecc)
23/03/2013 15:12:53
Grazie per la risposta, ma a dire il vero il cron job mi stava bene... funzionava perfettamente e l'impatto in effetti era minimo...
Ora ho cmq inviato una mail al servizio di hosting, non vorrei avessero bloccato qualche funzione o apporto qualche modifica...
Discussione seguita da
Pagine → 1 2
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Neverness to Everness ↗
AlterEgo ↗
CRSED: F.O.A.D. ↗
Cafuné ↗