2009-06-16 27 views
3

J'ai une application rails qui a un traitement asynchrone, et j'ai du mal à la faire fonctionner en mode production. Je commence Starling à partir de la racine de l'application comme ceci:Problèmes avec starling/workling en mode production

starling -d -P tmp/pids/starling.pid -q log/ 

je commence workling comme ça

./script/workling_client start -t 

la première fois que je courais cela, il se plaignait parce qu'il n'y avait aucune base de données de développement, donc je créé une base de données de développement, et cette erreur est partie lorsque j'ai redémarré workling. mais quand je tente d'exécuter effectivement un processus asynchrone, je reçois ce message dans le journal/production.log

Workling::QueueserverNotFoundError (config/workling.yml configured to connect to queue server on localhost:15151 for this environment. could not connect to queue server on this host:port. for starling users: pass starling the port with -p flag when starting it. 

, je lance

sudo killall starling 

puis redémarrez Starling à partir de la racine de l'application comme ceci:

starling -d -P tmp/pids/starling.pid -q log/ -p 15151 

qui semble fonctionner très bien, mais quand je tente de démarrer workling à nouveau avec ce script/workling_client commencer -t, je reçois ce message dans la console

/var/rails-apps/daisi/vendor/plugins/workling/lib/workling/clients/memcache_queue_client.rb:68:in `raise_unless_connected!': config/workling.yml configured to connect to queue server on localhost:22122 for this environment. could not connect to queue server on this host:port. for starling users: pass starling the port with -p flag when starting it. If you don't want to use Starling, then explicitly set Workling::Remote.dispatcher (see README for an example) (Workling::QueueserverNotFoundError) 

Alors, j'essayé de changer le fichier config/workling.yml à l'intérieur du plugin workling pour faire la production et le développement écouter sur 15151, cela ne fonctionne pas, alors j'ai essayé tous les deux sur 22122, toujours pas dés, alors j'ai essayé un port aléatoire, mais il donne toujours le même comportement, peu importe ce que je mets dans le fichier workling.yml

Répondre

5

la réponse est que Starling doit être démarré en tant que tel:

RAILS_ENV=production ./script/workling_client start -t 
+0

http://railscasts.com/episodes/130-monitoring-with-god – nessur