非同期処理を行う 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ファイルに何を入れてもまったく同じ動作をします