2017-10-14 12 views
0

J'ai un script que je veux continuer à utiliser essentiellement indéfiniment, ce qu'il fait est de surveiller une API et d'envoyer un tweet si certaines conditions sont remplies. Le script ressemble à ceciTweepy - Combien de temps une session API peut-elle rester ouverte?

while True: 
    #API CONDITION CHECKS HERE 
    if api_condition_check: 
     auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
     auth.set_access_token(access_token, access_token_secret) 
     api = tweepy.API(auth) 
     tweet = "This is the tweet." 
     if api.update_status(tweet): 
      print "Tweet Succeeded" 
    sleep(60) 

Le script définit une prise lors de l'exécution et a une vérification de tâche cron pour un verrou et redémarrer le script à des poignées se bloque, couper redémarrages etc.

Ce que je ne suis pas sûr de est si je peux mettre l'élément de création api en dehors de la boucle while qui s'exécute perpétuellement, sans que cet objet api expire ou quelque chose. Donc, essentiellement, le code ressemblerait à ceci

auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
auth.set_access_token(access_token, access_token_secret) 
api = tweepy.API(auth) 

while True: 
    #API CONDITION CHECKS HERE 
    if api_condition_check: 
     tweet = "This is the tweet." 
     if api.update_status(tweet): 
      print "Tweet Succeeded" 
    sleep(60) 

La deuxième façon signifie que le code est de ne pas avoir à recréer l'objet api à chaque fois, mais il pourrait être des heures entre les tweets et le code pourrait durer des semaines à un moment En supposant qu'il n'y ait pas d'erreurs ou de problèmes de serveur, le délai d'expiration de l'objet API sera-t-il créé si le script démarre?

Répondre

1

l'API va-t-elle expirer si elle est créée uniquement au démarrage du script?

Dans mon expérience, non. Tout ce que Tweepy est en train de faire est de prendre vos clés & et de l'utiliser pour signer toutes les demandes que vous faites.

Le seul problème survient si vous (ou votre utilisateur) supprime l'autorisation en accédant aux paramètres de Twitter et en révoquant l'application.

+0

Merci, c'est bon à savoir. – jskrwyk