2010-12-17 19 views
6

मैं एक ऐसा एप्लीकेशन लिख रहा हूं जो मनमानी आरएसएस फ़ीड की श्रृंखला से डेटा इनपुट लेता है। फ़ीड्स को पृष्ठभूमि में असीमित रूप से प्रदूषित किया जाता है और प्रत्येक बार फ़ीड में एक नया आइटम जोड़ा जाने पर एक विधि कहा जाता है।एक आरएसएस फ़ीड से नए आइटम निकालने

मेरी समस्या फ़ीड में नए आइटम की पहचान कर रही है। ऐसा करने का सबसे अच्छा तरीका क्या है? मैं कुछ विचारों के साथ आया हूं, लेकिन वे सभी त्रुटिपूर्ण हैं।

सुझाव: हर बार जब आप मतदान, पिछले चुनाव समस्या में अंतिम आइटम रखने सभी आइटम नए की pubDate से: pubDate एक आवश्यक क्षेत्र नहीं है।

सुझाव: तुम वापस हर आइटम के लिए सामग्री के हैश रखें, और एक ही हैश समस्या के साथ वापसी सामग्री नहीं है: तेजी से स्मृति उपयोग के मामले में नियंत्रण से बाहर बढ़ता

उत्तर

4

कैसे दोनों के बारे में?

उन फ़ीड पर पब-डेट का उपयोग करें जो इसे वापस करते हैं, और दूसरों का हैश रखें। यदि अधिकांश फीड एक पब-डेट लौटाती हैं, और फ़ीड्स की संख्या लाखों में नहीं चलती है, तो आपको प्रदर्शन और मेमोरी के अनुसार ठीक होना चाहिए।

+1

मैं विषय के एक हैश और शरीर के लिए एक की सिफारिश करता हूं। इसके अलावा, कुछ फीड में गाइड और अन्य यूयूआईडी होते हैं। – sal

+0

शरीर और विषय के लिए अलग हैंश क्यों रखें? क्या यह सिर्फ मेरे स्टोरेज ओवरहेड्स को दोगुना नहीं करता है? – Martin

2

आप उन आरएसएस फ़ीड के लिए पबडेट का उपयोग कर सकते हैं जहां यह प्रदान किया जाता है। जब पबडेट प्रदान नहीं किया जाता है और यदि डुप्लिकेट आइटम बिल्कुल बराबर होते हैं, यानी .. जब आप उन्हें अलग करने के लिए कोई भी फ़ील्ड नहीं ढूंढ पा रहे हैं, तो md5 चेकसम की गणना करें और तुलना के लिए स्टोर करें। लिंक http://sharpertutorials.com/calculate-md5-checksum-file/ का उपयोग करें। इस तरह आप पूरी सामग्री फ़ाइलों और उनकी तुलना को संग्रहित करने से बचेंगे। व्यावहारिक रूप से आप स्मृति समस्या से बचने के लिए अक्सर नई सामग्री की आवृत्ति के आधार पर चेकसम डेटा को शुद्ध कर सकते हैं। यदि संभव हो तो विभिन्न स्रोतों के लिए एकाधिक हैश बनाए रखें। यदि आप वास्तविक संख्या पोस्ट करते हैं तो हमारे पास अधिक यथार्थवादी समाधान हो सकता है।

संबंधित मुद्दे