14-06-2011, 04:37 PM
(Modification du message : 14-06-2011, 04:39 PM par Sephi-Chan.)
Ben, quel que soit le framework, le serveur Web charge les fichiers en RAM : c'est pour ça que quand on change des fichiers, il faut le relancer (restart ou graceful sur Apache).
Pour créer le comportement que tu décris, c'est relativement trivial : tu stockes ton objet dans un data store tel que Redis, Memcache ou APC.
Ici, tu n'es pas passé par la base de données (à condition que l'utilisateur 24 soit déjà dans le data store). Ton objet @target est stocké quelque part (dans Redis ou Memcache, par exemple) et tu le manipules comme tu le souhaites (en prenant soin de le faire expirer du cache après l'avoir modifié).
Sinon, tu fais tourner un serveur persistant qui "pilote" le jeu à côté et dans lequel vivent toutes tes variables, et l'application Web en elle-même n'est là que pour discuter avec ce serveur de jeu.
Pour créer le comportement que tu décris, c'est relativement trivial : tu stockes ton objet dans un data store tel que Redis, Memcache ou APC.
@target = Rails.cache.fetch('users:24') { User.find(24) }
current_user.attack(@target)
Ici, tu n'es pas passé par la base de données (à condition que l'utilisateur 24 soit déjà dans le data store). Ton objet @target est stocké quelque part (dans Redis ou Memcache, par exemple) et tu le manipules comme tu le souhaites (en prenant soin de le faire expirer du cache après l'avoir modifié).
Sinon, tu fais tourner un serveur persistant qui "pilote" le jeu à côté et dans lequel vivent toutes tes variables, et l'application Web en elle-même n'est là que pour discuter avec ce serveur de jeu.