Pergunta

Eu tenho um aplicativo Rails que possui processamento assíncrono e estou tendo problemas para fazê -lo funcionar no modo de produção. Comecei a estrelar da raiz do aplicativo como assim:

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

Então eu começo a trabalhar assim

./script/workling_client start -t

A primeira vez que corri isso, ele reclamou porque não havia banco de dados de desenvolvimento, então criei um banco de dados de desenvolvimento e esse erro desapareceu quando reiniciei o trabalho. Mas quando tento executar um processo assíncrono, recebo esta mensagem no log/produção.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.

Então eu corro

sudo killall starling

Em seguida, reinicie a estrela da raiz do aplicativo como este:

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

O que parece funcionar bem, mas quando tento começar a trabalhar novamente com este script/workling_client Start -t, recebo esta mensagem no 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)

Então, tentei alterar o arquivo config/workling.yml dentro do plugin de trabalho para fazer com que a produção e o desenvolvimento ouçam em 15151, que não funcionaram, então tentei os dois em 22122, ainda sem dados, então tentei um aleatório Port, mas ainda dá exatamente o mesmo comportamento, não importa o que eu coloque no arquivo Workling.yml

Foi útil?

Solução

A resposta é que Starling deve ser iniciado como tal:

RAILS_ENV=production ./script/workling_client start -t
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top