我有一个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.yml文件,使生产和开发都在15151上侦听,但没有起作用,然后我在22122上尝试了这两个文件,仍然没有结果,所以我尝试了一个随机端口,但无论我在workling.yml文件中放入什么,它仍然提供完全相同的行为
发布于 2009-06-29 17:36:27
答案是starling必须这样开始:
RAILS_ENV=production ./script/workling_client start -thttps://stackoverflow.com/questions/1003740
复制相似问题