मुझे एक्सेस टोकन प्राप्त करने के लिए एक एपीआई से अनुरोध करना है। यह एक दिन में यानी 86400 सेकेंड या 24 घंटे में खत्म हो जाता है। एक नया दिन शुरू होने के बाद मुझे एक नया एक्सेस टोकन प्राप्त करने की आवश्यकता है।

नीचे मेरा एपीआई एक्सेस कोड है:

def get_access_token():
    logging.info('Started to get access token')
    response = requests.post(settings.URL, data=params).json()
    logging.info('Fetched Access token')
    return response

मुझे यह सुनिश्चित करने की ज़रूरत है कि केवल उपरोक्त विधि get_access_token प्रतिदिन पहले घंटे में एक बार चलती है। मेरा पूरा काम हर घंटे ब्लॉकिंग शेड्यूलर का उपयोग करके चलता है। केवल उपरोक्त कोड को प्रतिदिन पहले घंटे में एक बार चलाने की आवश्यकता है।

कृपया मुझे बताएं कि इसे कैसे प्राप्त किया जा सकता है?

-1
Shankar Guru 20 अगस्त 2018, 10:55
2
ऐसा कुछ कैसे बनाया जाए, यह समझने के लिए आपको क्रॉन दस्तावेज़ीकरण पढ़ना चाहिए। stackoverflow.com/tags/cron/info पर क्रॉन टैग देखें।
 – 
tanaydin
20 अगस्त 2018, 10:58
2
का संभावित डुप्लिकेट >पायथन में हर x सेकंड में किसी फ़ंक्शन को बार-बार निष्पादित करने का सबसे अच्छा तरीका क्या है?
 – 
bergerg
20 अगस्त 2018, 10:59
क्या आप फ्लास्क या Django जैसे वेब ढांचे का उपयोग कर रहे हैं?
 – 
Jundiaius
20 अगस्त 2018, 12:09

2 जवाब

इसके लिए आप कुछ स्मार्ट स्लीपिंग स्टेप के साथ एक अनंत लूप का उपयोग कर सकते हैं:

import time
starttime=time.time()
interval=86400 
while True:
  get_access_token()
  time.sleep(interval - ((time.time() - starttime) % interval))

यदि आप चाहते हैं कि कार्यक्रम पहले घंटे पर चले, तो सुनिश्चित करें कि आपने इसे पहली बार ऐसे समय में चलाया है।

1
ibarrond 20 अगस्त 2018, 11:59

यदि आप Linux परिवेश में काम कर रहे हैं, तो cron मदद करेगा आप इसे हासिल करते हैं।

  1. अपने कोड को एक script.py में क्रियान्वित करने के लिए प्राप्त करें
  2. टर्मिनल में crontab -e निष्पादित करें
  3. एक नई लाइन सेट करें जैसे:

    0 9 * * * python /path/to/your/script/script.py >/dev/null 2>&1
    

जो आपकी स्क्रिप्ट को प्रतिदिन सुबह 9:00 बजे निष्पादित करेगा।

1
Pablo M 22 अगस्त 2018, 10:24