我有一个脚本,我希望它基本上无限期地运行,它的作用是监视API并在满足某些条件时发送推文。该脚本看起来像这样
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)
该脚本在运行时设置套接字,并且有一个cron作业检查锁并重新启动脚本以处理崩溃,服务器重新启动等。
我不确定的是,我是否可以将api
创建元素置于永久运行的while
循环之外,而不会使api对象超时或其他东西。所以基本上代码看起来像这样
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)
第二种方式意味着代码不必每次都重新创建api对象,但它可能是推文之间的数小时,代码可以一次运行几周,假设没有错误或服务器问题,因此api对象超时如果它只在脚本启动时创建?
答案 0 :(得分:1)
如果只在脚本启动时才创建api对象超时吗?
根据我的经验,没有。 Tweepy正在做的就是把钥匙和钥匙拿走。令牌并使用它来签署您提出的任何请求。
唯一的问题是,如果您(或您的用户)通过转到Twitter的设置并撤消该应用来删除授权。