質問

非同期処理を行う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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top