سؤال

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

يحرر :سيكون تطبيق ويب.أي شيء يلمس هذا foxpro يكون بطيئًا نوعًا ما (ربما لأن الشخص الذي قام بإعداده قبل 10 سنوات أفسد كل شيء، وبعض ملفات الجدول كبيرة بشكل لا يصدق).نقوم بتكرار foxpro إلى SQL كل ليلة ومعظم قراءات البيانات لدينا لا بأس بها منذ يوم واحد لذلك نحن نركز على عمليات الكتابة.بالإضافة إلى أن الكتابة تؤثر على جزء مهم من تجربة المستخدم (الشراء)، فإننا نقوم بتخزينها في SQL ثم نرسل رسالة لوضعها في foxpro عندما يكون ذلك ممكنًا.أتمنى أن نتخلص من برنامج foxpro، ولسوء الحظ لا ترغب الشركة في التخلص من برنامج قديم جدًا اشتروه ويعتمد عليه.

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

المحلول

يعمل ActiveMQ بشكل جيد مع لغة C# باستخدام تكاملات Spring.NET وNMS.منشور يحتوي على بعض الروابط لتبدأ في هذا الاتجاه هنا.ضع في اعتبارك أيضًا استخدام MSMQ (مساحة الاسم System.Messaging) أو حل المراسلة غير المتزامن المستند إلى .NET، مع بعض الخيارات هنا.

نصائح أخرى

قد يكون MSMQ (وضع الرسائل في قائمة انتظار Microsoft) خيارًا رائعًا.إنه جزء من نظام التشغيل وموجود كمكون اختياري (يمكن تثبيته عبر إضافة/إزالة البرامج / مكونات Windows)، مما يعني أنه مجاني (طالما أنك دفعت بالفعل مقابل Windows، بالطبع).يوفر MSMQ Win32/COM و النظام.المراسلة واجهات برمجة التطبيقات.مؤسسة اتصالات Windows الأكثر حداثة (المعروفة أيضًا باسم Indigo) القنوات في قائمة الانتظار استخدم أيضًا MSMQ.لاحظ أن MSMQ غير مدعوم على وحدات SKU الرئيسية لنظام التشغيل Windows (XP Home وVista Home)

ومن الجدير بالذكر أن مشروع ActiveMQ مفتوح المصدر يحدد أ C# API للمراسلة تسمى NMS والذي يسمح لك بالتطوير مقابل واجهة برمجة تطبيقات C# / .Net واحدة يمكنها بعد ذلك استخدام أطراف خلفية مختلفة للمراسلة مثل

  • ActiveMQ
  • MSMQ
  • نظام الإدارة البيئية الخاص بشركة TibCo
  • أي مزود STOMP
  • أي مزود JMS عبر ستومبكونيكت

قد ترغب في إلقاء نظرة على MSMQ.يمكن استخدامه بواسطة .NET وVFP، لكنك ستحتاج إلى إعادة الكتابة لاستخدامهما.إليك مقالة تخبرك بكيفية استخدام MSMQ من VFP. http://msdn.microsoft.com/en-us/library/ms917361.aspx

آسف إذا لم يكن هذا ما تطلبه ...هل فكرت في نوع من ذاكرة التخزين المؤقت خلف الكواليس التي تعمل إلى حد ما مثل "نظام الجرافة" عند استخدام مآخذ التوصيل غير المتزامنة في c/c++ باستخدام Winsock؟في الأساس، يعمل عن طريق قبول الطلبات، وإرسال استجابة فورية إلى تطبيق الويب، وعندما يتمكن أخيرًا من العثور على السجل الخاص بك، فإنه يقوم بتحديثه على التطبيق عبر AJAX أو أي تقنية أخرى من اختيارك.نظرًا لأنني لست مبرمجًا في لغة C#، فلا يمكنني تقديم أي مثال محدد.أتمنى أن يساعدك هذا!

هل يستخدم تطبيق Fox فهارس .CDX؟إذا كان الأمر كذلك، فقد تتمكن من تحسين الأداء عن طريق إضافة فهارس دون الحاجة إلى تغيير أي رمز برنامج.إذا كان يستخدم فهارس .IDX، فيجب إجراء التغيير في التطبيق الفعلي.

نظرًا لأن المشكلة تتعلق بالكتابة، فإنني سأتطلع أكثر نحو >إزالة< أي فهارس غير ضرورية على الجداول.كما هو شائع في RDBMS، يؤدي كل فهرس في جدول FoxPro إلى إبطاء عملية الكتابة حيث تحتاج الفهارس إلى التحديث، وبما أنك لا تقرأ مباشرة من الجدول (أو من المفترض الاستعلام عنه بشكل مباشر)، فلن تحتاج إلى عدد كبير جدًا من الفهارس .قد ترغب أيضًا في إلقاء نظرة على أي مشغلات أو قواعد حقلية في الجداول لأنها قد تؤدي إلى إبطاء عملية الكتابة.تأكد من الحفاظ على سلامتك المرجعية.

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