حجزت سيرفر VPS لتطبيقي لكن عندما ارسل notification يعلق السيرفر ما الحل ؟

السلام عليكم

مشكلة غريبة لدي تطبيق المسجلين فيه لا يتجاوزو 7 الاف

الباك اند للتطبيق وورد برس وهو عبارة عن متجر

لما ارسل notification عبر API الى التطبيق السيرفر يجمد ويوقف تماما مع التطبيق لمدة 5 دقائق

كلمت المستضيف قالوا لازم تجزأ الارسال لان يدخل زوار مع بعض للموقع او للتطبيق بعد التنبيه وما يستحمل السيرفر

هل من المعقول سيرفر لا يستحمل 5 الاف فقط!!! هل العيب في السيرفر ام في شي ثاني برأيكم ؟

السيرفر من شركة A2hosting.com

وهذا رابط الخطط وانا ما خذ خطة : POWER+

هل اغير السيرفر ام اجزء التنبيهات على كلامهم ؟

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

نسيم أضف ردا

الأفضل أن تقوم بإرسال التنبيهات مقسمة.

لأن الضغط مش من الزوار.

الضغط بيكون على cpu والسيرفر لكي يتحكم في 5000 عملية مرةً واحدة صعب جدا عليه.

كمثال خذ مثلاً 5000 ملف txt في جهازك وافتحهم كلهم بضغطة زر ماذا سيجري؟.

الجهاز سيجمد ويعيد الإقلاع لن يتمكن من اجراء العمليه.

كمثال اخر قم بعمل صفحة php تقوم بإستعراض كل 5000 عضو الموجودين بقاعدة البيانات.. نفس الامر سيطرأ وسيجمد السيرفر.

لذا الافضل ان تقوم بتقسيم الارسال مثلا كل 100 ارسال عندما تنتهي تقوم بارسال 100 الثانية .. الى ان تكمل 5000 تنبيه.

شكرا لك على ردك الوافي أخي رضوان

لكن أنا فعلا استغربت لان العدد قليل يعني 5000 يوزر عدد بسيط ماذا تفعل التطبيقات اللي فيها فوق 10 مليون عند ارسال التنبيهات ؟

في البداية لما كان العدد بحدود 1000 او 1500 ما كانت تظهر المشكلة ثم بدأت تظهر وتكبر مع ازدياد عدد التحميلات

تستعمل نفس الأمر اخي تقوم بتقسيم الرسائل وتستعمل cron job.

يعني بعد ان ينتهي الإرسال ل 100 يوزر الأولى يتم الارسال لل100 التالية. حتى يكتمل العدد.

لا يستغرق الامر وقت كثير. إرسال 100 تنبيه قد يأخذ فقط جزء من الثانية.

اصحاب التطبيقات الكبيرة تستعمل عدة سرفرات أو تقوم بإستأجار مقدم خدمة خاص بإرسال التنبيهات

مرحبا أخي، نعم قم بتقسيم الإرسال على مجموعات أصغر ..

و قم بتضمين مؤقت زمني يعطي السيرفر وقتا كافيا لإنجاز كل مهمة (عدة ثواني)

شكرا لردك كم العدد المناسب وكم الوقت المناسب له .. مثلا 100 كل ثلاث ثواني او ماذا ؟

مثلا 100 كل ثلاث ثواني

نعم مناسبة وستكون هذه طريقة يدوية بدلا من استخدام تقنيات متقدمة ولكن تعلمك للتقنيات المتقدمة سيكون أفضل و احترافي أكثر للمستقبل

بما أن الإضافة مبرمجة مسبقا عليك تجريب تعديلها بالطريقة المناسبة

مرحباً بك،

المفروض هذه الخصائص التي تُعيق السيرفر و تمنع المُستخدم من تصفح التطبيق أو الموقع إلى حين إنتهائها و بالأخص تأخذ وقت كبير لتنفيذها كإرسال إيميلات أو تنبيهات لعدد كبير من الأشخاص، مثلا رفع مقاطع أو ملفات ذات حجم كبير و ماإلى ذلك يتم تنفيذها بشكل غير مُتزامن, بحيث نقوم بحفظها في قائمة الإنتظار (Queue) و نقوم بإنشاء Job يقوم بتنفيذها في الكواليس بدون إعاقة المستخدم، لو كنت مُستخدم لإطار عمل Laravel ستجد أن لهذه المُشكلة حلول تم توفيرها من مُطورين الإطار نفسهم و أظن أن مُعظم أطر العمل القوية توفر نفس الميزة لذلك فالمواقع الكبيرة تستخدم هذا الإتجاه و لها عدة سيرفرات.

بالتوفيق

شكرا لردك

نتعلم كلما تقدمنا في المشاريع وهذه اول تجربة مع هكذا مشكلة

المشكلة اني استخدم هنا woocommerce و ال API مبرمجة برمجة خاصة على شكل plugin

بالاضافة لاقتراحات حل المشكلة بالتقسيم.

ابدء من الان دراسة فكرة نقل مشروعك الى سيرفر حقيقي. بزيادة الاستثمار قليلا. وتحصل على اداء ١٠ اضعاف ما تملك الان

طبعا تحتاج معرفة بلينوكس.

مجهول ولكن...