Twitter机器人在Heroku上部署后首次发布后停止

时间:2020-06-16 19:42:27

标签: python heroku twitter bots

我制作了一个简单的小型Twitter机器人,该机器人每小时会引用一次自身的tweets,由于某种原因,它会在发出第一条tweet之后停止工作。这些是下面的heroku日志:

https://imgur.com/MN2SYOs

看起来“状态”只是从“上”切换为“下”,但没有说明原因。我知道我的代码有效,因为我在本地进行了很多测试,而且效果很好,所以我不确定这里发生了什么。这是该机器人的主要代码:

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)

我想念什么吗?

1 个答案:

答案 0 :(得分:0)

Heroku上一个小时内未执行任何操作的应用程序将被闲置以节省计算资源。您可以在Heroku网站上read more about this

App何时入睡?

当Heroku上的应用程序只有一个网络测功机且该测功机没有 在1小时内收到任何流量,测功机就会进入睡眠状态。