生产模式下椋鸟/工作鸟的问题
我有一个具有异步处理功能的 Rails 应用程序,但我无法使其在生产模式下工作。 我从应用程序的根部开始,如下所示:
starling -d -P tmp/pids/starling.pid -q log/
然后我第一次运行此程序时开始像这样工作
./script/workling_client start -t
,它抱怨因为没有开发数据库,所以我创建了一个开发数据库,当我重新启动工作时,该错误消失了。 但是当我尝试实际运行异步进程时,我在 log/development.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
这似乎工作正常,但是当我尝试启动时再次使用此 script/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)
因此,我尝试更改工作插件内的 config/workling.yml 文件以使生产和开发都监听 15151,但这不起作用,然后我在 22122 上尝试了这两个,仍然没有骰子,所以我尝试了一个随机端口,但无论我在 workling.yml 文件中放入什么,它仍然给出完全相同的行为
I have a rails app that has asynchronous processing, and I'm having trouble getting it to work in production mode. I start starling from the root of the application like so:
starling -d -P tmp/pids/starling.pid -q log/
then I start workling like this
./script/workling_client start -t
the first time I ran this, it complained because there was no development database, so I created a development database, and that error went away when I restarted workling.
but when I try to actually run an asynchronous process, I get this message in 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.
so, I run
sudo killall starling
then restart starling from the root of the application like this:
starling -d -P tmp/pids/starling.pid -q log/ -p 15151
which seems to work fine, but then when I try to start workling again with this script/workling_client start -t, I get this message in the 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)
So, I tried changing the config/workling.yml file inside the workling plugin to make both production and development listen on 15151, that didn't work, then I tried both of them on 22122, still no dice, so I tried a random port, but it still gives the exact same behaviour no matter what I put in the workling.yml file
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
答案是八哥必须这样开始:
the answer is that starling has to be started as such: