#python #heroku #python-telegram-bot
Вопрос:
Я использую heroku для развертывания своего бота telegram. Я использую бесплатные динамо-машины. Итак, чтобы сэкономить время работы, я хочу, чтобы мое приложение простаивало после 30 минут бездействия, как и должно быть.
Но мое приложение получает случайные запросы GET примерно через 25 минут. Итак, мое приложение никогда не простаивает.
Примечание: мое приложение еще не запущено в производство, поэтому я не могу понять, почему я получаю пинг каждые 25 минут.
вот мой код:
import telegram.ext
import bot
from config import TOKEN,PORT
def start(update,context):
id = update.message.chat.id
if(id == (hidden) or id == (hidden)):
update.message.reply_text("Welcome! to Football Story Bot")
else:
update.message.reply_text("""
We have detected unusual request from your device.
You have been banned from the service until further notice,
""")
def help(update,context):
id = update.message.chat.id
if(id == (hidden) or id == (hidden)):
update.message.reply_text("""
The following commands are available:
/start -> Welcome Message
/help -> This Message
/streams -> list of matches
""")
else:
update.message.reply_text("""
We have detected unusual request from your device.
You have been banned from the service until further notice,
""")
def streams(update,context):
id = update.message.chat.id
if(id == (hidden) or id == (hidden)):
update.message.reply_text("Searching for available matches")
all_matches_name_list = bot.all_matches_name()
link_str=''
if(all_matches_name_list==None):
update.message.reply_text("We are experiencing problem.Try again later, if problem persists then contact admin")
return None
for links in all_matches_name_list:
link_str =links 'n'
update.message.reply_text(link_str)
update.message.reply_text("End Of Detected Matches")
else:
update.message.reply_text("""
We have detected unusual request from your device.
You have been banned from the service until further notice,
""")
def handle_message(update,context):
id = update.message.chat.id
if(id == (hidden) or id == (hidden)):
update.message.reply_text("Searching for available streams")
link_str=''
sending_message=''
for chars in update.message.text:
if(chars=='@'):
break
sending_message =chars
individual_link = bot.selected_match(bot.all_matches_name(),sending_message)
if(individual_link==None):
update.message.reply_text("We are experiencing problem.Try again later, if problem persists then contact admin hai tw")
return None
if(len(individual_link)==0):
update.message.reply_text("No links found. Links are updated 30min before match. If link is not found till Kick Off then contact admin")
return None
for links in individual_link:
link_str =links 'nn'
update.message.reply_text(link_str)
update.message.reply_text("End Of Streaming Links")
else:
update.message.reply_text("""
We have detected unusual request from your device.
You have been banned from the service until further notice,
""")
updater = telegram.ext.Updater(TOKEN,use_context=True)
disp = updater.dispatcher
disp.add_handler(telegram.ext.CommandHandler("start",start))
disp.add_handler(telegram.ext.CommandHandler("help",help))
disp.add_handler(telegram.ext.CommandHandler("streams",streams))
disp.add_handler(telegram.ext.MessageHandler(telegram.ext.Filters.command,handle_message))
updater.start_webhook(listen="0.0.0.0",
port=PORT,
url_path=TOKEN,
webhook_url="(my app link)" TOKEN)
updater.idle()
Комментарии:
1. Почему бы просто не запустить таймер и не перейти на холостой ход вручную, когда время истечет? Кажется, это самый простой способ преодолеть это.
2. @Skully, Но он должен начаться снова после получения запроса
3. Затем, после того как таймер истечет и вы перейдете в режим ожидания, всякий раз, когда будет получен запрос, вы можете просто проверить, не перешли ли вы в режим ожидания по истечении 30 минут; и если это так, запустите его снова.