首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >与Heroku一起部署的Twitter机器人关闭

与Heroku一起部署的Twitter机器人关闭
EN

Stack Overflow用户
提问于 2022-01-24 17:16:08
回答 1查看 105关注 0票数 0

我对Heroku平台非常陌生,我不明白为什么我的Twitter机器人在一段时间后就会被关闭。我不知道是迪诺还是别的什么原因。

bot.py

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
web: python server.py
worker: python bot.py

dyno信息

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-24 19:25:49

您的Procfile显示您有一个web进程和一个worker进程。

假设您使用的是免费dynos,这种行为是预料之中的。 (粗体添加):

如果一个应用程序有一个免费的web dyno,而该dyno在30分钟内没有收到任何网络流量,它就会睡觉。除了网络睡眠外,工人的睡眠(如果有)将也会睡眠。

没有worker dyno的应用程序上的免费web dynos是不睡觉的,但当然它们每月要消耗约720个免费dyno小时(每天24小时×每月30天)。

你有几个选择:

  • 通过Heroku调度器 定期(但不是经常)运行您的员工
    • 例如,可能每小时运行一次,时间有限/推特

  • 升级到付费dynos
  • 将您的免费worker dyno移动到另一个没有web dynos的应用程序,以防止其睡眠。
    • 可能对您的应用程序没有多大意义的...though

  • 至少每30分钟拍一次你的网.
    • ...but之后,你将在每月大约20天内用完免费的dyno小时(或者更早,如果你的帐户没有被核实)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70837818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档