Domanda un pò particolare su RoR

Salve a tutti, sto cominciando da poco (dopo un periodo di Tomcat/JSP)
ad avvicinarmi a Ruby on Rails, trovandolo (almeno finora) eccezionale.

Avrei una domanda da porvi sperando di riuscire a spiegare il mio
problema.

Supponiamo di avere un’applicazione che gestisca degli utenti che vi
accedono con un classico sistema di login. Ora, io avrei la necessità di
compiere delle operazioni sul database anche quando tali utenti non sono
connessi.

Esempio: non so se conoscete uno di quei browser game tanto in voga
negli ultimi tempi, tipo Travian o Ogame, in cui i giocatori hanno delle
risorse che continuano a crescere ad intervalli stabiliti anche quando
non collegati al gioco.

Bene, com’è possibile gestire tutto questo?
L’unica cosa che riesco a fare per il momento è parlare con un database
ma quando l’utente è connesso. Come far sì, dunque, che Apache (o chi
per lui) continui ad eseguire qualcosa dopo il logout?

Grazie mille.


Sonny

Devi avere un motore del gioco che gira in background.
Le mail ti raggiungono ovunque con BlackBerry® from Vodafone!

Giovanni I. wrote:

Devi avere un motore del gioco che gira in background.

E questo motore è possibile scriverlo con ruby e runnarlo su apache?

Domanda alternativa:

Chi si dovrebbe prendere la pena di eseguire questo motore?

Grazie.

puoi scriverlo tu in modo piuttosto semplice in pure ruby. caricando il
file
di boot e di environment di rails ti darà accesso a tutti i models e
librerie della tua applicazione rails

On 5/17/07, Sonny C. [email protected] wrote:

Grazie.


Posted via http://www.ruby-forum.com/.


Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml


– Kia

therubymine.com | be a miner

On 5/17/07, Sonny C. [email protected] wrote:

Giovanni I. wrote:

Devi avere un motore del gioco che gira in background.

E questo motore è possibile scriverlo con ruby e runnarlo su apache?

Puoi scrivere in ruby uno script che fa “avanzare” lo stato del gioco
di uno scatto. Poi lo invochi ogni 5 minuti. Per avere a
disposizione tutti i tuoi modelli eseguilo con script/runner.

Domanda alternativa:

Chi si dovrebbe prendere la pena di eseguire questo motore?

http://www.google.com/search?q=crontab

E questo motore è possibile scriverlo con ruby e runnarlo su apache?

Puoi scrivere in ruby uno script che fa “avanzare” lo stato del gioco
di uno scatto. Poi lo invochi ogni 5 minuti. Per avere a
disposizione tutti i tuoi modelli eseguilo con script/runner.

Ma… che voi sappiate, c’e qualche 'demone' un po' piu serio per
questo genere di cose? Cioe, ok, non e difficile crearne uno
semplice, o cacciare qualcosa in cron, ma a me piacerebbe avere una
cosa un po’ piu` seria da usare in questi casi.


David N. Welton

Linux, Open Source Consulting

Matteo V. wrote:
[…]

Puoi scrivere in ruby uno script che fa “avanzare” lo stato del gioco
di uno scatto. Poi lo invochi ogni 5 minuti. Per avere a
disposizione tutti i tuoi modelli eseguilo con script/runner.

Ingegnoso! Anche se purtroppo mi mancano delle basi. Ora cmq mi
leggo la documentazione di questo script.

crontab - Google Search

A questo punto però mi sorge un dilemma.
Possibile che per eseguire questa “semplice” operazione
temporizzata abbia bisogno di un server dedicato?

Nel senso che i servizi di hosting (quelli di RoR in questo
caso) difficilmente offrono la possibilità di runnare un
processo.

chiaro scuro wrote:

dai un’occhiata a backgroundrb:
Introduction to BackgrounDRb

Infatti. Qui lo usiamo, ha qualche spigolo (prima di tutto non gira
sotto windows, anzi va patchato altrimenti non fa partire rails solo con
la sua presenza in vendor/plugins) ma fa delle cose abbastanza
interessanti… in particolare, da dentro rails puoi schedulare nuovi
task in backgroundrb, tipo “manda una mail, con calma” e cose del
genere.

Ciao


“Intertwingularity is not generally acknowledged,
people keep pretending they can make things deeply
hierarchical, categorizable and sequential when
they can’t. Everything is deeply intertwingled.”
– Ted Nelson

dai un’occhiata a backgroundrb: