यह आमतौर पर डेटाबेस सर्वर नहीं होता है जो तत्काल समय छलांग होने पर त्रुटि के लिए कमजोर होता है: इसके अनुप्रयोग जो उस समय का उपयोग करते हैं जो हैं।
आमतौर पर ट्रैकिंग समय के दो तरीके हैं: खुद का समय ट्रैकिंग या सिस्टम का समय की तुलना करना। दोनों में कुछ सकारात्मक और नकारात्मक ट्रेडऑफ हैं।
खुद का समय ट्रैकिंग
मैं कुछ एम्बेडेड प्रोग्रामिंग और सिस्टम में इसका उपयोग करता हूं, जहां सटीक समय महत्वपूर्ण नहीं है। मुख्य एप्लिकेशन लूप में 'टिक' को ट्रैक करने का एक तरीका ध्यान रखा जाता है। यह कर्नेल, नींद या चयन द्वारा दिया गया अलार्म हो सकता है जो गुजरे समय की मात्रा का संकेत देता है। जब आप जानते हैं कि क्या समय बीत चुका है, तो आप जानते हैं कि आप इस समय को एक काउंटर में जोड़ या घटा सकते हैं। यह काउंटर वह है जो आपके समय के अनुप्रयोग को बनाता है। उदाहरण के लिए, यदि काउंटर 10 सेकंड से अधिक है तो आप कुछ त्याग सकते हैं, या आपको कुछ करने की आवश्यकता है।
यदि एप्लिकेशन समय का ट्रैक नहीं रखता है, तो काउंटर नहीं बदलेगा। यह आपके एप्लिकेशन के डिज़ाइन के आधार पर वांछित हो सकता है। उदाहरण के लिए, एक लंबे समय से चल रही प्रक्रिया को कुछ समय के लिए ट्रैक रखने पर एक टाइमस्टैम्प शुरू / रोक की सूची की तुलना में काउंटर के साथ आसान है।
समर्थक:
- सिस्टम क्लॉक पर निर्भर नहीं
- एक बड़े समय तिरछा पर नहीं टूटेगा
- कोई महंगा सिस्टम कॉल नहीं
- छोटे काउंटरों को एक पूर्ण टाइमस्टैम्प की तुलना में कम स्मृति खर्च होगी
कोन:
- समय बहुत सटीक नहीं है
- सिस्टम समय में बदलाव इसे और भी गलत बना सकता है
- समय अनुप्रयोग चलाने के सापेक्ष है, निरंतर नहीं रहता है
तुलना प्रणाली समय
यह अधिक बार उपयोग की जाने वाली प्रणाली है: टाइमस्टैम्प को स्टोर करें और सिस्टम टाइम कॉल का उपयोग करके टाइमस्टैम्प के साथ तुलना करें। सिस्टम के समय में भारी वृद्धि से आपके एप्लिकेशन की अखंडता को खतरा हो सकता है, कुछ सेकंड का एक कार्य घड़ी की दिशा के आधार पर तुरंत या अंत में ले सकता है।
समर्थक:
- सटीक समय की तुलना
- पुनरारंभ और लंबे आउटेज पर बनी रहती है
कोन:
- अन्य टाइमस्टैम्प के साथ तुलना करने के लिए एक ताजा टाइमस्टैम्प प्राप्त करने के लिए एक सिस्टम कॉल लेता है
- एप्लिकेशन को स्काइज़ के बारे में पता होना चाहिए या टूट सकता है
प्रभावित सिस्टम
अधिकांश एप्लिकेशन शेड्यूल कार्यों की तुलना में टाइमस्टैम्प का उपयोग करेंगे। डेटाबेस सिस्टम के लिए जो कैश क्लीनअप हो सकते हैं।
सभी अनुप्रयोग जो डेटाबेस का उपयोग करते हैं और क्वेरी भाषा में कॉल फ़ंक्शंस का उपयोग करते हैं, यदि एप्लिकेशन पता नहीं लगाता है और तदनुसार हैंडल करता है, तो स्कीज़ से प्रभावित होगा। एप्लिकेशन कभी भी चलना बंद नहीं कर सकते हैं या अपने उद्देश्य के आधार पर अनिश्चित लॉगिन अवधि की अनुमति नहीं दे सकते हैं।
मेल सिस्टम बासी या बिना मेल वाले मेल को संभालने के लिए टाइमस्टैम्प और / या टाइमआउट का उपयोग करेगा। एक घड़ी तिरछा प्रभावित कर सकता है लेकिन बहुत कम प्रभाव के साथ। सर्वर से फिर से कनेक्ट करने के संबंध में बैक-ऑफ टाइमर कनेक्ट करने में चूक हो सकती है, जिससे कनेक्टिंग सर्वर पर पेनल्टी लग सकती है।
मुझे नहीं लगता (शोध नहीं किया गया है) कि सिस्टम समय बदलते समय कर्नेल अलार्म बंद हो जाएगा। इनका उपयोग करने वाले सिस्टम सुरक्षित हो सकते हैं।
समाधान की
धीरे से समय बढ़ाएं। यह आपके पसंदीदा समय समाधान के प्रलेखन में पाया जा सकता है।
now()
। क्या आप अपने उत्तर में समय बदलने की कोई सुरक्षित विधि जोड़ सकते हैं?