本番モードでのスターリング/動作に関する問題
-
05-07-2019 - |
質問
非同期処理を行う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 -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)
だから、制作プラグイン内のconfig / workling.ymlファイルを変更して、15151でプロダクションと開発の両方をリッスンしてみましたが、うまくいきませんでした。ランダムなポートを試してみましたが、workling.ymlファイルに何を入れてもまったく同じ動作をします
解決
答えは、スターリングをそのように開始する必要があるということです:
RAILS_ENV=production ./script/workling_client start -t
所属していません StackOverflow