首页 > 解决方案 > Twitter bot 在部署到 Heroku 后第一次发帖后停止

问题描述

我制作了一个简单的小推特机器人,它每小时引用一次推文,但由于某种原因,它在发布第一条推文后停止工作。这些是下面的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)

我错过了什么吗?

标签: pythonherokutwitterbots

解决方案


Heroku 上在一小时内不执行任何操作的应用程序将被闲置以节省计算资源。您可以在 Heroku 网站上阅读有关此内容的更多信息。

应用程序何时休眠?

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


推荐阅读