كما يشير العنوان ، حتى بعد قراءة الوثائق ، ليس من الواضح بالنسبة لي الفرق بين unref()
، quit()
و end()
.
يبدو أن end()
يغلق الاتصال دون انتظار إغلاق جميع المقابس.
يبدو أن unref()
ينتظر انتهاء جميع الأوامر.
يبدو أن quit()
مشابه لـ unref()
.
unref()
ليس به مهلة ، فهل هو مضمون لإنهائه أم يجب علي تعيين مهلة؟end
قيد أو شرط من أي حدث اتصلت به؟end()
للاستخدام حيث تقوم بإنهاء التطبيق الآن ، على سبيل المثال معالج uncaughtException
، ولا تتوقع أو تريد انتظار ردود (إن وجدت) من الأوامر التي قد تكون أرسلتها التي لم تعد من Redis بعد.
quit()
عندما تنتهي من هذا الاتصال وترغب في إغلاقه ، ولكن مع السماح بإكمال النشاط غير المكتمل. في معظم الحالات ، إذا كنت تحاول إنهاء الاتصال ، فاستخدم quit()
لم يتم تصميم unref()
للتنافس مع هذه الخيارات ، ولكن ببساطة للسماح لتطبيقك بالخروج إذا كان الشيء الوحيد غير المتزامن المتبقي هو عميل Redis. هذا هو الحال عادةً بالنسبة لنوع من البرامج النصية حيث تقوم بإجراء استعلام دفعي ، أو اختبار يتصل بـ Redis. يتصرف بشكل مماثل لـ unref
هنا http://nodejs.org/api/net.html#net_server_unref
ثم يتم إصدار حدث end
فقط من عند استدعاء quit()
ما يبدو. لست متأكدا بالضبط لماذا بدون بحث.
إذا لم تتصل بإنهاء ما يحدث.
techsin إذا لم تغلق اتصال redis مطلقًا ، فسيظل تطبيق العقدة الخاص بك منتظرًا إلى الأبد متصلاً بخادم Redis.
ماذا لو تم إغلاق التطبيق ، لكن خادم redis لا يزال قيد التشغيل. هل هذا يجعل خادم redis يحمل مرجعًا؟ هل سيكون ذلك نوعًا من تسرب الذاكرة
آسف لم أكن واضحا لأول مرة
كلا ، إذا تم إغلاق التطبيق ، فإنه سينهي اتصال العميل وسينهي خادم Redis المرجع من جانبه ، لذلك لن يحدث تسرب للذاكرة.
التعليق الأكثر فائدة
end()
للاستخدام حيث تقوم بإنهاء التطبيق الآن ، على سبيل المثال معالجuncaughtException
، ولا تتوقع أو تريد انتظار ردود (إن وجدت) من الأوامر التي قد تكون أرسلتها التي لم تعد من Redis بعد.quit()
عندما تنتهي من هذا الاتصال وترغب في إغلاقه ، ولكن مع السماح بإكمال النشاط غير المكتمل. في معظم الحالات ، إذا كنت تحاول إنهاء الاتصال ، فاستخدمquit()
لم يتم تصميم
unref()
للتنافس مع هذه الخيارات ، ولكن ببساطة للسماح لتطبيقك بالخروج إذا كان الشيء الوحيد غير المتزامن المتبقي هو عميل Redis. هذا هو الحال عادةً بالنسبة لنوع من البرامج النصية حيث تقوم بإجراء استعلام دفعي ، أو اختبار يتصل بـ Redis. يتصرف بشكل مماثل لـunref
هنا http://nodejs.org/api/net.html#net_server_unref