سؤال

وأنا تطوير موقع على شبكة الإنترنت التي سيتم استرداد رسائل SMS التي تم إرسالها إلى العبارة. يتم الوصول إلى بوابة عبر API، مع الطلبات في الشكل التالي:

http://www.smsgateway.com/?login=myusername&password=mypassword&lasttime=1236164238

لاحظ أن أواجه لتتبع آخر مرة تم تحميلها رسائل - يتم إرجاع الرسائل التي وردت بعد ذلك الوقت فقط

والمشكلة هي أن هناك فرقا وقت حوالي 5 دقائق بين الملقمات! إليك ما يحدث:

-> العضو يرسل SMS. خادم عبارة الطوابع الزمنية عليه في 11:00 (دعنا نقول الوقت الفعلي هو 10:55)

-> الخادم طلباتي كل الرسائل المرسلة من 10.56 فصاعدا - يتلقى الرسالة أعلاه ويضيفه إلى قاعدة البيانات

-> الخادم طلباتي كل الرسائل المرسلة من 10.58 فصاعدا - يتلقى الرسالة أعلاه ويضيف ذلك مرة أخرى، لأن قتية عليه في 11:00

-> خادم البريد يرسل طلب آخر في 11.00 - يتلقى رسالة، ويضيف إلى قاعدة البيانات مرة أخرى

وهكذا مشكلتي هي أن الرسالة الأصلية احدة يتم تلقي 3 مرات.

وتغيير الوقت خدمة بلدي هو تفعل قادرة، ولكن ليس خدمة المناطق النائية.

وكيف يمكنني التعامل مع هذا دون التحقق لمعرفة ما إذا كانت الرسالة مسبقا في قاعدة البيانات؟

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

المحلول

وعندما تتلقى الرسائل المرسلة من 10.56 فصاعدا، تحقق من الوقت الرسالة الأخيرة: قل 11:00 صباحا، ثم المكالمة التالية فقط إرسال فقط في تمام الساعة 11:00 صباحا لأنك تلقى بالفعل تصل 11:00 صباحا من الوقت الخادم. بهذه الطريقة يمكنك تقليل استطلاعات الرأي الخاصة بك. حتى هذا ستعمل عند الساعة خادم هو في حالة عكس ذلك.

وأي) التحقق من وجود الوقت رسالة الماضية:

وفي الاختيار استطلاع القادم من وقت رسالة الماضية.

نصائح أخرى

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

وأنت إما في حاجة الى API مختلفة للوصول إلى الرسائل أو لديك لطلب تداخل الرسائل عن طريق طلب رسائل منذ latest_processed_timestamp - 1 وفرز التكرارات على الجانب الخاص بك.

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