سؤال

لدي موقع ويب حيث يمكن للمستخدم تحميل جدول بيانات Excel لتحميل البيانات في جدول. يمكن أن يكون هناك عدد قليل من صفوف 100K في جدول بيانات Excel. عندما يقوم بتحميل الملف ، يحتاج الموقع إلى إدراج كمية متساوية من الصفوف في جدول قاعدة البيانات.

ما هي الاستراتيجية التي يجب أن آخذها للقيام بذلك؟ كنت أفكر في عرض "الرجاء الانتظار صفحة" حتى يتم الانتهاء من العملية ولكني أريده أن يتمكن من متابعة تصفح الموقع. أيضًا ، نظرًا لأن قاعدة البيانات في ذلك الوقت ستكون مشغولة نوعًا ما - ألا يمنع ذلك الأشخاص من العمل على الموقع الإلكتروني؟

طبقة الوصول إلى البيانات الخاصة بي في Nhibernate.

بفضل ذ

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

المحلول

سيكون عرض صفحة PROED WARK أمرًا غير ودي للغاية حيث يمكن أن يكون المستخدم الخاص بك من الوقت لفترة طويلة وسيحظر مؤشرات الترابط على خادم الويب الخاص بك.

أود تحميل الملف وتخزينه وإنشاء إدخال في قائمة انتظار (ستحتاج إلى جدول أنثير لهذا) للإشارة إلى وجود ملف ينتظر معالجته. يمكنك بعد ذلك الحصول على عملية أخرى (والتي يمكن أن تعمل على خادم خاص بها) والتي تلتقط المهام من جدول قائمة الانتظار هذا ومعالجة ملف XLS في وقته الخاص.

نصائح أخرى

سأقوم بإنشاء قائمة انتظار تحميل من شأنها تقديم هذا الطلب إلى. ثم يمكن للمستخدم فقط التحقق من قائمة الانتظار كل مرة. يمكنك تخزين تقدم عملية الدُفعات في قائمة الانتظار حيث تتم معالجة الصفوف.

أيضا ، خوادم قاعدة البيانات أنظمة قوية وقوية ومهام متعددة. ما لم تكن قد لاحظت مشكلة في الموقع أثناء حدوث الإدراج ، فلا تفترض أنها ستمنع الأشخاص من العمل على الموقع الإلكتروني.

ومع ذلك ، فيما يتعلق بأداء القراءة/الكتابة المتزامنة أو المتزامنة ، هناك آليات للتعامل مع هذا. يمكنك استخدام بناء جملة "إدراج منخفضة الأولوية" في MySQL أو اتخاذ تطبيق تطبيق إدراجك عن طريق النوم ميلي ثانية بين كل إدراج. أيضًا ، كيف تقوم بصياغة عبارات الإدراج الخاصة بك ، وينتقل إلى معلمات ملزمة أم لا ، ويمكن أن تستخدم إدراج متعددة القيم يمكن أن تؤثر على أداء الإدراج وكيف يؤثر على العملاء إلى حد كبير.

عند الإرسال ، يمكنك تمرير عملية DB إلى requestHandler غير المتزامن وتعيين قيمة جلسة عند القيام بها.

على الرغم من أن عملية Asynch قيد التقدم ، يمكنك التحقق من قيمة الجلسة في كل طلب وإذا تم تعيينها (العملية = مكتملة) ، قم بعرض رسالة ، على سبيل المثال في وسيط أو أي آلية رسائل لديك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top