Foreman: تمت المحاولة مع $ stdout.sync = true ، وما زال رئيس العمال لا يحصل على الناتج.

تم إنشاؤها على ١٠ يوليو ٢٠١٢  ·  17تعليقات  ·  مصدر: ddollar/foreman

أنا لا أحصل على مخرجات من فورمان باستثناء "بدأت {عملية} بـ {pid}" ، أي مساعدة سأكون محل تقدير كبير.

تم تعيين تطبيقاتي لتسجيل الدخول إلى STDOUT ولدي ما يلي في الجزء العلوي من config.ru الخاص بي:

$stdout.sync=true

# This file is used by Rack-based servers to start the application.

require ::File.expand_path('../config/environment',  __FILE__)
run ItriageServer::Application

ملف Procfile الخاص بي هو كما يلي:

# Apps
itriage:            subcontract -d itriage3 --signal INT -- bundle exec thin start -p 5001
api_clinical:       subcontract -d api-clinical --signal INT -- bundle exec rails s -p 5002
api_global_search:  subcontract -d api-global-search --signal INT -- bundle exec rails s -p 5003
auth_server:        subcontract -d itriage-auth --signal INT -- bundle exec rails s -p 5004

# Proxy
haproxy:            haproxy -f itriage-runlocal/config/haproxy.cfg

# Search
solr:               subcontract -d itriage3 --signal INT -- bundle exec rake sunspot:solr:run
sphinx:             subcontract -d itriage3 --signal INT -- bundle exec rake ts:run_in_foreground

التعليق الأكثر فائدة

كان الاختراق الذي نجح معي هو تغيير سطر في https://github.com/ddollar/foreman/blob/v0.82.0/lib/foreman/engine.rb#L359 :

في السطر pid = process.run(:output => writer, :env => { تم تغيير :output => writer إلى :output => $stdout .

ال 17 كومينتر

ما هو subcontract ؟ هل من الممكن أنه يتم تخزين الإخراج مؤقتًا؟

لقد قمت بتثبيت فورمان من خلال حزام أدوات Heroku. أرى أنه تم قطع stdout من عملية Python إلى النصف (فقط أول 20 سطرًا أو نحو ذلك من عمليات تتبع الخطأ). يبدو أن إصدار Foreman هو الإصدار 0.44.0.

لقد قمت بالفعل بتعيين PYTHONUNBUFFERED = صحيح في .env الخاص بي.

أرى نفس الشيء مثلjokull. لقد حدث ذلك فقط عندما بدأت في تشغيل عملية أطول ، ولكن يتم قطع الإخراج في مرحلة ما ويتوقف عن الطباعة. الشيء الغريب هو أن المكان في الكود الذي يتوقف فيه الإخراج يبدو أنه يتغير في كل مرة أقوم فيها بتشغيل الكود الخاص بي. لقد قمت أيضًا بتعيين PYTHONUNBUFFERED = صحيح.

المشكلة نفسها

لدي نفس المشكلة هنا ، PYTHONUNBUFFERED = صحيح ، لا يوجد حتى الآن مخرجات بخلاف عناصر بدء التشغيل.

لقد وجدت المشكلة لأصدقائي في الثعبان. تحتاج إلى تعيين PYTHONUNBUFFERED=True في .env للإخراج ليأتي عادةً بحرف T كبير في True.

تم تحديث الويكي ليعكس هذا https://github.com/ddollar/foreman/wiki/Missing-Output

imkevinxu تستمر المشكلة التي نراها نحن أهل الثعبان حتى مع PYTHONUNBUFFERED=true

استسلمت واستخدمت Honcho

evanhammer حاول تعيين PYTHONUNBUFFERED إلى True بدلاً من true

imkevinxu إنه متغير بيئي لذا لا يجب أن يكون مهمًا لكنني جربت كلا الطريقتين. لا تتعلق هذه المشكلة بقضية pythonunbuffered العادية. هذه مشكلة في عمليات متعددة قيد التشغيل حتى عند تعيين هذا المتغير.

jokull لقد تحولت أيضًا إلى Honcho.

تضمين التغريدة يبدو أن استخدام True يجعل الأمر يعمل بالنسبة لي ، إلا أنني أرى كل المخرجات على الفور الآن

صحيح لا يعمل بالنسبة لي أيضًا ، لقد تحولت أيضًا إلى Honcho.

أي أخبار عن هذا؟ لقد كنت أواجه نفس المشكلة خلال الساعتين الماضيتين.

$stdout.sync = true # in config/environments/development.rb, tried in config.ru too

ملف Procfile:

web: bundle exec rails server thin start -p $PORT
guard: bundle exec guard
redis: redis-server ./config/redis/development.conf
worker: bundle exec sidekiq -C ./config/sidekiq.yml -r ./config/environment.rb

نواتج الحراسة جيدة ، لكن الرقيقة والجانبية لا تظهران ، ومع ذلك تظهر عند الخروج.

أعطتني Honcho نتائج أفضل في الاختبارات المحلية أيضًا ... سألتزم بذلك في الوقت الحالي

روبي تمتص في العمليات stdin والتفاعلية ، ليس من الممكن حقًا إصلاح هذه العملية.

تحقق من https://github.com/ddollar/forego للحصول على بديل آخر

كان الاختراق الذي نجح معي هو تغيير سطر في https://github.com/ddollar/foreman/blob/v0.82.0/lib/foreman/engine.rb#L359 :

في السطر pid = process.run(:output => writer, :env => { تم تغيير :output => writer إلى :output => $stdout .

الحل الوحيد الذي نجح معي هو ما نشرتهbikramwp . أي سبب لماذا لم يتم إصلاح هذا في الماجستير؟

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

MathieuGilbert picture MathieuGilbert  ·  18تعليقات

rtyler picture rtyler  ·  8تعليقات

Svalorzen picture Svalorzen  ·  9تعليقات

dunkstewart picture dunkstewart  ·  12تعليقات

jasonivers picture jasonivers  ·  8تعليقات