我制作了一个简单的小型Twitter机器人,该机器人每小时会引用一次自身的tweets,由于某种原因,它会在发出第一条tweet之后停止工作。这些是下面的heroku日志:
看起来“状态”只是从“上”切换为“下”,但没有说明原因。我知道我的代码有效,因为我在本地进行了很多测试,而且效果很好,所以我不确定这里发生了什么。这是该机器人的主要代码:
import tweepy
import time
import sys
import os
#--------------------Twitter credentials---------------------#
from os import environ
#Fill in on Heroku dashboard
CONSUMER_KEY = environ['CONSUMER_KEY']
CONSUMER_SECRET = environ['CONSUMER_SECRET']
ACCESS_KEY = environ['ACCESS_KEY']
ACCESS_SECRET = environ['ACCESS_SECRET']
#---------------------Connect to Twitter---------------------#
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)
#----------------------Generate Tweets-----------------------#
lastTweet = None
num = 1
def createTweet():
global lastTweet
global num
#Get most recent tweet ID
for status in api.user_timeline('RecursionBot', count = 1):
tweetID = status.id
#Attach ID to template URL
blankURL = 'https://twitter.com/RecursionBot/status/'
mostRecentTweet = "{}{}".format(blankURL, tweetID)
#Generate new tweet
tweet = "Level: {} \n {}".format(num, mostRecentTweet)
num += 1
return tweet
#------------------------Post Timer-------------------------#
interval = 60 * 60
while True:
print("Generating tweet...")
newTweet = createTweet()
api.update_status(newTweet)
time.sleep(interval)
我想念什么吗?
答案 0 :(得分:0)
Heroku上一个小时内未执行任何操作的应用程序将被闲置以节省计算资源。您可以在Heroku网站上read more about this。
App何时入睡?
当Heroku上的应用程序只有一个网络测功机且该测功机没有 在1小时内收到任何流量,测功机就会进入睡眠状态。