我对Heroku平台非常陌生,我不明白为什么我的Twitter机器人在一段时间后就会被关闭。我不知道是迪诺还是别的什么原因。
bot.py
import time
import json
import requests
import tweepy
from os import environ
consumer_key = environ['api_key'] #API key
consumer_secret = environ['api_key_secret'] #API key scret
key = environ['access_token'] #Access token
secret = environ['access_token_secret'] #Access token secret
auth = tweepy.OAuthHandler(consumer_key, consumer_secret) # Authentication
auth.set_access_token(key, secret) # Grant access to API
api = tweepy.API(auth) # Connect to API
def get_quote():
url = 'https://programming-quotes-api.herokuapp.com/Quotes/random'
response = requests.get(url)
data = json.loads(response.text)
data = data['en']+'\n--'+data['author']
return data
def tweet_quote():
interval = 60 * 20 # 20 minutes
while True:
quote = get_quote()
api.update_status(quote)
time.sleep(interval)
if __name__ == "__main__":
tweet_quote()
Procfile
web: python server.py
worker: python bot.py
发布于 2022-01-24 19:25:49
您的Procfile
显示您有一个web
进程和一个worker
进程。
假设您使用的是免费dynos,这种行为是预料之中的。 (粗体添加):
如果一个应用程序有一个免费的web dyno,而该dyno在30分钟内没有收到任何网络流量,它就会睡觉。除了网络睡眠外,工人的睡眠(如果有)将也会睡眠。
没有worker
dyno的应用程序上的免费web
dynos是不睡觉的,但当然它们每月要消耗约720个免费dyno小时(每天24小时×每月30天)。
你有几个选择:
worker
dyno移动到另一个没有web
dynos的应用程序,以防止其睡眠。https://stackoverflow.com/questions/70837818
复制相似问题