سؤال

أنا أعمل في متجر برامج، والذي يحتوي على منتج مسجل تنبؤي في المنزل، ونحن بحاجة إلى تنفيذ حل يطيع قوائم DO-NOT-CALL.

في الأساس، لدي قاعدة بيانات مع العملاء / العملاء المحتملين الذين أحتاج إلى الاتصال، وقاعدة بيانات أخرى مع أرقام الهواتف لا أستطيع الاتصال بها. نظرا لأن النظام عبارة عن طالب تنبؤي، استنادا إلى أداء عملية التشغيل والمسائل والأشياء، فسيتطلب إجراء مكالمات أكثر أو أقل لكل مستخدم نظام مسجل. عادة ما يبلغ عدد "السحر" حوالي 3 - 4 مكالمات لكل وكيل مسجل.

مستودع رقم الهاتف للمسجل التنبؤي هو قاعدة بيانات postgresql. اختيار المسجل التنبئي مجموعة من الأرقام لأعلى من قاعدة البيانات وإرسال أمر إلى PBX للحصول على Bunch، ثم ينتقل منطق العمل لنقل المكالمات الصحيحة إلى كتبة مركز الاتصال، وغيرها (هذا غير ذي صلة مثل بلدي المشكلة هي قبل المكالمة).

أحتاج إلى تنفيذ وظائف قائمة DO-NOT-CALL. سيتم توفير قائمة عدم الاتصال هذه لشركتنا من قبل وكالة حكومية، في ملف CSV، على أساس يومي. في كل مرة أتلقى فيها ملف CSV جديد، لا بد لي من تطهير القائمة القديمة DO-NOT-CART، ووضعها الجديدة في مكانها.

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

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

نظرا لأنني أتين هنا فقط، ليس لدي فكرة عن فكرة هي الأفضل، أو إذا حصلت على خطأ تماما وينبغي أن ننظر إلى اتجاه آخر. لذلك، سؤالي هو: ماذا ستكون توصيتك؟ تخزين ملف CSV لا يسميه في الذاكرة؟ استخدم LDAP؟ استخدام mysql؟ postgresql؟ هل معالجة دفعة معالجة؟ أو أنا بالتأكيد ثمل؟

أعلم أنني لست أول شخص في العالم لديه هذا النوع من المشاكل، لذلك يرجى تنوير لي.

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

المحلول

تحديك، لإيجاد عدد من الإدخالات من ضمن مساحة واسعة من الإدخالات المحتملة، يذكرني قوائم DNS الأسود / كتلة.

rbldnsd. هو برنامج DNS صغير وسريع يتم تقديمه بشكل خاص لخدمة مناطق DNSBL. كان هذا الخفي مستوحى من برنامج RBLDNS Dan J. Bernstein الموجود في حزمة DJBDNS. المزيد RBLDNSD، من جوجل

لديها دعم للمناطق المستندة إلى الاسم، لذلك يمكنك تحويل قائمة الأرقام إلى URIS على غرار المعين - على سبيل المثال + 1-555-4242 تصبح 2.4.2.4.5.5.5.5.1.e164.arpa. ثم يتم إدخال ذلك في RBLDNSD DataFile، التي تم تجميعها في الذاكرة والوصل إليها مثل أي قائمة حظر أخرى. يعني إدخال افتراضي CAN CALL، أو إذا كان الإدخال موجود، فسيتم إعطاء إدخال Donotcall.

لا تزال تحصل على مشكلة تحويل الدفعات، على الرغم من أنه سيكون نص أبسط إلى حد ما، من الممكن القيام به مع بيرل أو AWK. قد تتمكن أيضا من تقسيم ملفات CSV الواردة إلى ملفات متعددة للمعالجة الموازية، ودمج نهائي.

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