3

非同期処理を行う 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

正常に動作しているように見えますが、この 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)

そこで、workling プラグイン内の config/workling.yml ファイルを変更して、本番環境と開発環境の両方が 15151 でリッスンするようにしようとしましたが、うまくいきませんでした。次に、22122 で両方を試しましたが、サイコロはまだなかったので、ランダムに試してみましたポートですが、workling.ymlファイルに何を入れてもまったく同じ動作をします

4

1 に答える 1