قطع الاتصال

مرحبًا،
أعمل على إضافة (plugin) لمنصة Discourse تسمى Disraptor، وتعمل كنوع من الوكيل العكسي (reverse proxy) للسماح بتضمين موقع ويب آخر ضمن سياق Discourse.

الموقع الذي نرغب بتضمينه بهذه الطريقة يحتاج حاليًا إلى وقت طويل لخدمة بعض المسارات (routes)، مما يؤدي إلى استلام صفحة “not_found” المُنشأة بعد 30 ثانية.

أنا مدرك أن مهلة الوقت الافتراضية لعمال Unicorn هي 30 ثانية في بيئة الإنتاج. لذا بدأت بزيادة هذه المهلة عبر تعديل إعدادات Unicorn. وعند مراجعة سجل أخطاء Unicorn، تأكدت من أن عامل Unicorn يُقتَل الآن بعد وقت أطول، ومع ذلك يتم عرض قالب “not_found” (قبل قتل العامل).

بعد بحث إضافي، لم أتمكن من العثور على أي مؤشر يوضح مصدر مهلة الـ 30 ثانية أو مكان تعيينها. وعلى الرغم من أن وقت الاستجابة الطويل يمثل مشكلة بحد ذاته وسيتم حلها على الأرجح في المستقبل، إلا أنه سيكون مثاليًا في الوقت الحالي إذا توفرت إمكانية تغيير هذه المهلة.
هل لدى أحدكم فكرة حول كيفية تحقيق ذلك؟

شكرًا مقدّمًا!

أعتقد أن مهلة يونيكورن البالغة 30 ثانية تأتي من هنا: discourse/config/unicorn.conf.rb at main · discourse/discourse · GitHub

سيكون من الجيد لو كانت هناك طريقة لتغييرها، على سبيل المثال، عن طريق ENV[“UNICORN_TIMEOUT”] في بيئة الإنتاج.