2013-03-13 5 views
4

Rails lui-même est basé sur plusieurs processus indépendants qui sont sans état entre les demandes. J'ai besoin d'ajouter un service centralisé dynamique (un automate de jeu) à mon application Rails. À partir de quel peu je sais que je devrais faire de ce service avec état une application en rack. Y at-il un tutoriel sur la façon de faire une application en rack et aussi comment communiquer avec Rails. Quelle est la manière idiomatique de le déployer avec Rails et l'endroit idiomatique pour le mettre dans mon code gase Rails?Comment créer une application en rack à utiliser par Rails?

+0

Je pense qu'il serait utile si vous pouviez clarifier ce que vous essayez d'accomplir. Rack est à proprement parler simplement une interface qui définit un contrat pour une application ruby ​​pour traiter une requête HTTP. Si vous pouviez fournir plus de détails sur ce que votre "game automate" devrait faire, je pourrais vous fournir une réponse plus utile. –

Répondre

2

Je suis arrivé réponse à ma question dans une autre question:

How to read POST data in rack request

require 'json' 

class Greeter 
    def call(env) 
    req = Rack::Request.new(env) 
    if req.post? 
     puts req.POST() 
    end 
    [200, {"Content-Type" => "application/json"}, [{x:"Hello World!"}.to_json]] 
    end 
end 

run Greeter.new 

et utiliser JSON.parse(req.body.read) pour analyser les données POST.

0

Une autre option que le rack est de daemonize votre application.

+0

Pour autant que je sache, middleware Rails fait partie de la gestion des requêtes Rails. Mais ce n'est pas un processus séparé en dehors de Rails qui est ce que je veux. – user782220

+0

oups, désolé, mal lu votre question –

+0

démonisant c'est encore une option valide, cependant. Vous aurez un processus séparé servant des données sur une socket ou sur le localhost, tout comme memcached par exemple –

Questions connexes