@Yevgeni

Почему threading выполнятеся снова и снова в приложении flask которое захостено на Heroku?

Мой __init__.py
from flask import Flask, request
from telebot import TeleBot
from configs import telegram_config

bot = TeleBot(telegram_config.TELEGRAM_API_TOKEN)

app = Flask(__name__)
app.config.update(
    DEBUG=False
)

from bot_functions import news_publisher
from app import views


Файл в котором размещен код с функцией которая должна выполнятся параллельно:
from app import bot
from time import sleep
from threading import Thread
from random import randint

def sender():
    while True:
        print('turned on')
        random_time = randint(60, 90)
        sleep(random_time)


t = Thread(target=sender, name='sender')
t.start()


так вот. Функция sender выполняется постоянно без остановки да еще и дублируется при старте.

Может быть кто знает как решить данную проблему?

Вот на всякий мой Procfile web: gunicorn app:app и лог с heroku:
2018-05-28T15:08:52.189169+00:00 app[web.1]: [2018-05-28 15:08:52 +0000] [4] [CRITICAL] WORKER TIMEOUT (pid:8)

2018-05-28T15:08:52.189364+00:00 app[web.1]: [2018-05-28 15:08:52 +0000] [4] [CRITICAL] WORKER TIMEOUT (pid:9)

2018-05-28T15:08:52.190164+00:00 app[web.1]: [2018-05-28 15:08:52 +0000] [8] [INFO] Worker exiting (pid: 8)

2018-05-28T15:08:52.191280+00:00 app[web.1]: [2018-05-28 15:08:52 +0000] [9] [INFO] Worker exiting (pid: 9)

2018-05-28T15:08:53.197374+00:00 app[web.1]: [2018-05-28 15:08:53 +0000] [18] [INFO] Booting worker with pid: 18

2018-05-28T15:08:53.205160+00:00 app[web.1]: [2018-05-28 15:08:53 +0000] [19] [INFO] Booting worker with pid: 19
  • Вопрос задан
  • 136 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Почитайте "12 факторов", чтобы понять как работает Heroku и почему для этой платформы нельзя писать программы так, как вы написали.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы