• User Attivo

    Aggiornamento giornaliero

    Salve,
    stavo pensando ad un progetto con php/mysql con gestione utenti che so fare.

    Considerando che ogni utente ha un punteggio per ogni articolo che scrive ad esempio che si va a sommare a quello totale salvato in un database c'è un modo per permettere che automaticamente ogni 24 ore dall'iscrizione ogni utente guadagni un punto in più?

    Essendo su hosting mi verrebbe subito da pensare NO perché ci vorrebbe un qualcosa sul server che ogni 24 ore lancia una funzione per ricalcolare i punti di ogni utenti e aggiornali sul database.
    Le opzioni potrebbero essere:
    -ad ogni volta che un utente vuole visualizzare i suoi punti totali (o di altri) si affianca una funzione che ricalcola sulla pagina il punteggio dall'iscrizione, ma ci sarebbe lo svantaggio che dovrei mettere questa funzione ad punto dove si mostrano i numeri e che questo punteggio totale reale non viene scritto nel database perché creato al volo, a meno che alla funzione aggiungo l'aggiornamento al database ma diventerebbe una continua query al db.
    -lanciare manualmente ogni 24 ore un mio script via browser, ma mi sembra improponibile e scomodo.

    Consigli?


  • Super User

    Esistono dei cron proprio che fanno al caso tuo, via web. Adesso non ricordo il nome, ma tempo fa ne usai uno che faceva proprio questo 😉


  • ModSenior

    Se non hai la possibilità di mettere dei cron puoi mettere un file di testo, dove metti il giorno dell'ultimo aggiornamento, lo controlli ogni volta che un utente lancia una pagina, e se necessario fai la query, cosi ne fai solo 1...


  • User

    Io avrei pensato come Thedarkita (se ho capito bene)
    Penso che l'importante non sia aggiornare ogni 24 MA che quando un utente accede alle informazioni esse siano corrette! mi spiego:
    Se per 3 giorni nessuno va sul sito (spero per te di no =] ) e il quarto gg un utente ci arriva, quell'utente con la sua richiesta alla pagina voluta aggiorna tutto anche dei giorni passati! Quindi io la vedo come un controllo che prima di caricare qualsivolgia pagina aggiorna i dati dei punteggi in modo che all'utente "sembri" che i punti salgano ogni giorno.

    Spero di essere stato chiaro ciao!


  • Bannato User Attivo

    @stable said:

    Esistono dei cron proprio che fanno al caso tuo, via web. Adesso non ricordo il nome, ma tempo fa ne usai uno che faceva proprio questo 😉
    webcron.org sembra funzionare.


  • User Attivo

    @temp said:

    Io avrei pensato come Thedarkita (se ho capito bene)
    Penso che l'importante non sia aggiornare ogni 24 MA che quando un utente accede alle informazioni esse siano corrette! mi spiego:
    Se per 3 giorni nessuno va sul sito (spero per te di no =] ) e il quarto gg un utente ci arriva, quell'utente con la sua richiesta alla pagina voluta aggiorna tutto anche dei giorni passati! Quindi io la vedo come un controllo che prima di caricare qualsivolgia pagina aggiorna i dati dei punteggi in modo che all'utente "sembri" che i punti salgano ogni giorno.

    Spero di essere stato chiaro ciao!

    Si infatti è quello che penso io, cioè l'unico modo. Però avendo un server dedicato si potrebbe fare vero senza che nessuno navighi?

    metti caso che però io dovrei inviare un'email ad un utente quando raggiunge i 200 punti, se si trova a 199 punti e nessuno naviga per 3 giorni questo utente non arriverà mai a 200 punti al momento giusto anche se "li meritava" 3 giorni fa.

    Vedrò i cron :=)


  • ModSenior

    se hai un server dedicato metti in cron e via 😄