Бот Twitter останавливается после первого сообщения после развертывания на Heroku - PullRequest
0 голосов
/ 16 июня 2020

Я сделал простого маленького твиттер-бота, который цитирует твиты раз в час и по какой-то причине перестает работать после того, как делает первый твит. Вот журналы 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 голосов
/ 17 июня 2020

Приложения на Heroku, которые ничего не делают в течение часа, будут простаивать для экономии вычислительных ресурсов. Вы можете узнать больше об этом на сайте Heroku.

Когда приложения спят?

Когда приложение на Heroku имеет только один веб-дино и этот дино не получает трафик c в течение 1 часа, дино переходит в спящий режим.

...