तालिका से स्वचालित रूप से डेटा कैसे मिटाना है?

मेरे पास एक टेबल है

it has four fields :Phone_number(primary key),City_name,Category_product and sub_Category

मैं एक एसएमएस गेटवे पर आधारित एक PHP आवेदन develoing हूँ। जब भी कोई उपयोगकर्ता एक उत्पाद सेवा का अनुरोध करता है और एसएमएस भेजता है, उनके विवरण इस तालिका में सहेजे जाएंगे।

अब जब कोई उपयोगकर्ता एसएमएस भेजता है, तो मैं विवरण तालिका में संग्रहीत करता हूं, और आवश्यकतानुसार उपयोगकर्ता को अधिक जानकारी के साथ एक एसएमएस वापस भेजने के लिए प्रतीक्षा करें।

अब मैं क्या करना चाहता हूं: यदि कोई उपयोगकर्ता जवाब नहीं देता है तो 15 मिनट का कहना है कि उसका विवरण तालिका से स्वचालित रूप से हटा दिया जाना चाहिए। मुझे कैसे आगे बढ़ना चाहिए?

0
जोड़ा संपादित
विचारों: 1
प्रवेश को हटाने के बजाय, एक नया कॉलम ( डेटाटाइम ) शामिल करें और दिनांक-समय मानों को संग्रहीत करें, और इसके विरुद्ध तुलना करें?
जोड़ा लेखक hjpotter92, स्रोत

3 उत्तर

आप अपनी तालिका में एक कॉलम जोड़ते हैं जो उसे भेजे गए समय को संग्रहीत करता है।

फिर आपको विकल्प चुनना होगा, आप या तो डेटा को साफ करने के लिए क्रॉन नौकरियां चला सकते हैं, या आप उन रिकॉर्ड्स को साफ़ कर सकते हैं जो वैध नहीं हैं जब कोई अन्य उपयोगकर्ता एसएमएस भेजता है, आदि। चूंकि आप डेटा के साथ समय संग्रहीत करते हैं, आप आसानी से बदल सकते हैं 15 मिनट बाद भी टाइमआउट।

1
जोड़ा
मैं टाइमआउट की स्थिति कैसे निर्धारित कर सकता हूं? मैं एक क्रॉन नौकरी चलाने के लिए नहीं चाहता। क्या मुझे रिकॉर्ड बनाए जाने के समय टाइमस्टैम्प करना चाहिए? और फिर बाद में इसकी तुलना करें?
जोड़ा लेखक Shiven, स्रोत
इसके लिए मुझे सर्वर पर लगातार एक PHP स्क्रिप्ट चलाने की आवश्यकता होगी? अगर मान लीजिए कि मुझे बड़ी संख्या में रिकॉर्ड हैं तो इसमें काफी समय लगेगा
जोड़ा लेखक Shiven, स्रोत
धन्यवाद, मैं कोशिश करूँगा :)
जोड़ा लेखक Shiven, स्रोत
वास्तव में आप एक टाइमस्टैम्प स्टोर करेंगे और बाद में इसकी तुलना करेंगे (उदा। समय() - $ time_sent> 900) और यदि यह सच हो जाता है तो रिकॉर्ड 15 मिनट से अधिक पुराना है।
जोड़ा लेखक Ben, स्रोत
नहीं, जरूरी नहीं। उदाहरण के लिए आप हर बार एक और एसएमएस भेजते समय स्क्रिप्ट चला सकते हैं। यदि आपके पास सर्वर पर उच्च भार है तो आप कचरा संग्रह प्रणाली का उपयोग करना चाह सकते हैं।
जोड़ा लेखक Ben, स्रोत
आप इस तरह के कुछ का उपयोग कर सकते हैं: अगर ((समय() - $ time_sent)> = 900) {deleteOldRecords (); }
जोड़ा लेखक Ben, स्रोत

आपको कुछ शेड्यूलिंग का उपयोग करना होगा। PHP के शेड्यूलिंग के लिए कोई मूल समर्थन नहीं है। मैं जो सुझाव दूंगा वह एक descktop applicaion या एक सेवा है जो एसएमएस प्रतिक्रिया के लिए तालिका सुनता है। अगर इसे प्रतिक्रिया नहीं मिली तो यह संवाद रिकॉर्ड हटा देगा। आपका काम असीम रूप से चल रहा है।

0
जोड़ा

यदि यह कई रिकॉर्ड के साथ एक टेबल होने जा रहा है, तो आपको प्री-ऑर्डर टेबल सेट अप करना चाहिए और फिर ऑर्डर किए जाने पर रिकॉर्ड को कॉपी करना चाहिए। इस तरह, यदि आप धीमे होने लगते हैं तो आप प्री-ऑर्डर टेबल को कभी भी साफ़ कर सकते हैं।

जैसा कि बेन ने कहा, इसमें चेक के लिए टाइमस्टैम्प होना चाहिए।

0
जोड़ा