Come far funzionare il sito Web ASP .NET MVC con un processo continuo?

0

Questo sito dovrebbe essere un gioco in cui i giocatori hanno alcuni "edifici" e questi edifici producono risorse. Per esempio. una miniera di ferro può produrre 30 pezzi di minerale di ferro al minuto e aggiungerla automaticamente all'inventario dell'utente. Non importa se l'utente è online o no, dovrebbe essere in esecuzione 24/7. Quindi, quando l'utente accede al proprio account, vedrà che il loro ammasso di minerale di ferro si è accumulato a seconda di quanto tempo è passato.

Alcuni suggerimenti nella giusta direzione sarebbero molto apprezzati:)

    
posta Deniz 11.02.2013 - 22:10
fonte

3 risposte

7
Need to save some state  
Put it in the database   
Retrieve on next login

In realtà, quando l'utente si collega di nuovo, ciò che devi fare è capire quanti pezzi di minerale di ferro avrebbero dovuto essere estratti mentre l'utente non c'era più, e aggiornare il database con tale conoscenza al successivo accesso dell'utente.

Se altri utenti interagiscono con le informazioni sui "pezzi di minerale" mentre l'utente non ha effettuato l'accesso, è possibile aggiornare tali informazioni quando viene richiesto dall'altro giocatore.

L'unica cosa che non penso che tu voglia fare è creare un "user agent" che viene eseguito in background per ogni persona non registrata; Non penso che tu abbia bisogno di quel tipo di complessità se stai interagendo con giocatori che non sono nemmeno loggati, e se ci sono molti giocatori, non sta andando in scala.

Quindi aggiorna le informazioni "just in time", quando richiesto.

    
risposta data 11.02.2013 - 22:17
fonte
2

Non dovrebbe essere il tuo sito web {qualunque tecnologia} che dovrebbe eseguire questa elaborazione.

Un processo in background di qualche tipo dovrebbe fare l'elaborazione e persistere nel database a intermittenza.

In questo modo gli altri utenti possono interagire con i dati ogni volta che è necessario.

Quando accedi al tuo sito web, interagirà sia con il processo in background che con il database per capire il tuo stato attuale.

    
risposta data 24.07.2013 - 16:08
fonte
0

Ecco diversi approcci in cima alla mia testa:

  • Utilizza un processo in background che viene eseguito continuamente sul server e controlla il database degli edifici ogni min / sec per vedere quando un edificio ha prodotto gli articoli per ultimo, e se è il momento, fai il lavoro di produzione.

  • Gli edifici producono in determinati momenti se la strada sopra costa troppo per essere eseguita. Dì ogni 15 minuti di un'ora. Quindi lo script verrà eseguito 4 volte in un'ora, riducendo il carico di lavoro del server.

  • Calcola i valori degli articoli solo quando necessario. Non eseguirai processi continui con questo metodo.

risposta data 11.02.2013 - 22:19
fonte

Leggi altre domande sui tag