starling /在生产模式下工作的问题

时间:2009-06-16 20:17:52

标签: ruby-on-rails asynchronous workling starling-server

我有一个具有异步处理的rails应用程序,但我无法让它在生产模式下工作。我从应用程序的根开始咆哮,如下所示:

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

然后我开始像这样工作

./script/workling_client start -t

我第一次运行它时,它抱怨因为没有开发数据库,​​所以我创建了一个开发数据库,​​当我重新开始工作时,该错误就消失了。 但是当我尝试实际运行异步进程时,我在log / 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.

所以,我跑

sudo killall starling

然后从应用程序的根目录重启starling,如下所示:

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

这似乎工作正常,但是当我尝试再次使用此脚本/ workling_client start -t开始处理时,我在控制台中收到此消息

/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)

所以,我尝试更改workling插件中的config / workling.yml文件,使生产和开发都在15151上听,但是没有用,然后我在22122上尝试了两个,仍然没有骰子,所以我尝试了一个随机端口,但无论我在workling.yml文件中放入什么,它仍会提供完全相同的行为

1 个答案:

答案 0 :(得分:5)

答案是starling必须这样开始:

RAILS_ENV=production ./script/workling_client start -t