python - Twitter bot 在部署到 Heroku 后第一次发帖后停止
问题描述
我制作了一个简单的小推特机器人,它每小时引用一次推文,但由于某种原因,它在发布第一条推文后停止工作。这些是下面的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)
我错过了什么吗?
解决方案
Heroku 上在一小时内不执行任何操作的应用程序将被闲置以节省计算资源。您可以在 Heroku 网站上阅读有关此内容的更多信息。
应用程序何时休眠?
当 Heroku 上的应用程序只有一个网络测功机并且该测功机在 1 小时内没有收到任何流量时,测功机就会进入睡眠状态。
推荐阅读
- actions-on-google - 我对 Google Actions 中的 Alpha 版发布很生气
- excel - 为布尔结果评估两个索引、匹配、匹配函数似乎不起作用
- javascript - 使用 Lodash 从对象中删除字段
- java - Spring Boot JPA 未知用户
- c# - 如何将连接字符串注入外部程序集(项目)控制器?
- ios - 当移动到嵌入在 UITableViewCell 中的 UITextView 中的新行时,光标消失
- google-apis-explorer - YouTube 分析 API 行为空
- groovy - 如何在 Groovy 闭包中隐藏变量?
- security - LDAP 与 Solr 的集成
- linux - 为什么来自套接字的 recv() 不会阻塞