Хостинг python -telegram-bot на Heroku всегда конфликтует через несколько секунд - PullRequest
0 голосов
/ 24 апреля 2020

Я установил бот-телеграмму с помощью python -telegram-bot и хочу разместить ее на Heroku. Проблема в том, что код сервера всегда приводит к ошибке, утверждая, что запущен другой экземпляр бота (которого нет).

Я создал Procfile примерно так:

web: python main.py

и убедился, что requirements.txt обновлен.

main.py:

# ... handlers ...

updater = Updater(token=os.environ['TOKEN'], use_context=True)
dispatcher = updater.dispatcher
logging.basicConfig(format='%(asctime)s  %(name)s - %(levelname)s - %(message)s',
                    level=logging.INFO)

dispatcher.add_handler(CommandHandler('help', help))


print('Started Bot. Listening for messages...')
updater.start_polling()
updater.idle()

Вот журнал ошибок:

2020-04-24T16:20:34.096562+00:00 app[web.1]: 2020-04-24 16:20:34,095  telegram.ext.dispatcher - ERROR - No error handlers are registered, logging exception.

2020-04-24T16:20:34.096564+00:00 app[web.1]: Traceback (most recent call last):
2020-04-24T16:20:34.096564+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/telegram/ext/updater.py", line 380, in _network_loop_retry
2020-04-24T16:20:34.096565+00:00 app[web.1]:     if not action_cb():
2020-04-24T16:20:34.096565+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/telegram/ext/updater.py", line 341, in polling_action_cb
2020-04-24T16:20:34.096609+00:00 app[web.1]:     allowed_updates=allowed_updates)
2020-04-24T16:20:34.096610+00:00 app[web.1]:   File "<decorator-gen-31>", line 2, in get_updates
2020-04-24T16:20:34.096610+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/telegram/bot.py", line 70, in decorator
2020-04-24T16:20:34.096611+00:00 app[web.1]:     result = func(*args, **kwargs)
2020-04-24T16:20:34.096611+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/telegram/bot.py", line 2136, in get_updates
2020-04-24T16:20:34.096612+00:00 app[web.1]:     result = self._request.post(url, data, timeout=float(read_latency) + float(timeout))
2020-04-24T16:20:34.096612+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/telegram/utils/request.py", line 334, in post
2020-04-24T16:20:34.096612+00:00 app[web.1]:     **urlopen_kwargs)
2020-04-24T16:20:34.096613+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/telegram/utils/request.py", line 249, in _request_wrapper
2020-04-24T16:20:34.096613+00:00 app[web.1]:     raise Conflict(message)
2020-04-24T16:20:34.096946+00:00 app[web.1]: telegram.error.Conflict: Conflict: terminated by other getUpdates request; make sure that only one bot instance is running
2020-04-24T16:20:34.523514+00:00 heroku[web.1]: State changed from starting to crashed

Я убедился, что остановил все другие запущенные main.py *.

Так как мне правильно разместить экземпляр бота на Heroku?

1 Ответ

0 голосов
/ 06 мая 2020

Попробуйте использовать вместо «веб» - «рабочий». Это было решение для моего бота на героку.

...