سؤال

ولدي التطبيق القضبان التي لديها المعالجة غير المتزامن، وأواجه صعوبة في الحصول على عمل في وضع الإنتاج. أبدأ زرزور من جذر تطبيق مثل ذلك:

starling -d -P tmp/pids/starling.pid -q log/

وبعد ذلك أبدأ workling مثل هذا

./script/workling_client start -t

وأول مرة ركضت هذا، فإنه شكا لعدم وجود قاعدة بيانات التنمية، لذلك أنا خلقت قاعدة بيانات التنمية، وذهب هذا الخطأ بعيدا عندما كنت إعادة تشغيل workling. ولكن عندما أحاول فعلا لتشغيل عملية متزامنة، وأحصل على هذه الرسالة في السجل / 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 مرة أخرى مع هذا البرنامج النصي / workling_client بدء -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.yml داخل المساعد workling لجعل كل من الإنتاج والتنمية الاستماع على 15151، التي لم تنجح، ثم حاولت كل منهما على 22122، لا يوجد حتى الآن الزهر، لذلك أنا حاول منفذ عشوائي، لكنه لا يزال يعطي نفس السلوك المحدد بغض النظر عن ما وضع في ملف workling.yml

هل كانت مفيدة؟

المحلول

وكان الجواب لابد من بدأ أن زرزور على هذا النحو:

RAILS_ENV=production ./script/workling_client start -t
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top