Usura oggeti postato il 03/06/2014 13:48:06 nel forum programmazione, gdrcd e open source e modificato da iko93 il 03/06/2014 13:48:57
Buongiorno a tutti,
Ho lavorato per implementare un sistema di usura degli oggetti basato sul tempo. Dopo un tot di giorni dall'acquisto l' oggetto si usura e viene eliminata.
Volevo chiedere un consiglio su come gestire il controllo finale per verificare che il tempo sia finito e quindi eliminare l'oggetto dal database.
L'idea è quella di far controllare una sola volta al giorno l'intera lista degli oggetti e eliminare quelli completamente usurati.
Per fare una cosa del genere però mi viene in mente solo un metodo, cioè salvarsi ulteriormente a database l'ora dell'ultimo controllo e dopo 24 ore o più rifare il controllo. Fattibile ma ho come la sensazione che non sia la scelta ottimale. Voi cosa ne pensate? Avete idee alternative su come gestire tale controllo?
Grazie, ciao.
Pagine → 1
03/06/2014 14:20:40
O usi un CronJob, se il tuo server l'ho supporto oppure fai il controllo al login del pg.
03/06/2014 16:17:14
Un controllo ad ogni login temo possa essere inefficiente. Innanzi tutto perché richiede un numero di chiamate al database inutili che era proprio ciò che volevo minimizzare. Inoltre così facendo tutti i giocatori con oggetto che non dovessero più fare accessi finirebbero per avere oggetti che invece non dovrebbero avere. A questo punto diventa più efficiente utilizzare il metodo che avevo in mente facendo una sola chiamata al database per verificare se il controllo è stato fatto e di conseguenza agire tutto in un colpo su tutti gli oggetti di database.
Potrei sbagliarmi ma a questo punto credo che anche dal punto di vista dell'efficienza sarebbe la scelta migliore. Tuttavia rimane il fatto che controllare tutti gli oggetti di tutti i giocatori in un colpo solo potrebbe creare qualche problema, o forse mi sbaglio ed effettivamente è l'unica via?
03/06/2014 16:37:37
Dipende da quanti utenti. Sostanzialmente, se un giocatore non effettua più login che abbia oggetti "usurati", non credo importi... Gli oggetti che ha sono lì a fare la muffa letteralmente e quando entrerà gli spariranno.
Personalmente non amo i CronJob (o CronTab, che dir si voglia), quindi continuo a ritenere il controllo al login più performante, in quanto lo fai con un'unica chiamata, un DELETE di quegli che rispettano i parametri dell'usura e sono posseduti dal Login in questione.
Se preferisci l'altra soluzione, la chiamata è la medesima, ma contenuta in CronTab.
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
Legacy of Magic: Le creature di Colline Ventose