Как запустить приложение Dash на Heroku в фоновом режиме?

python #heroku #plotly-dash #heroku-postgres

#python #heroku #plotly-dash #heroku-postgres

Вопрос:

Это стандартное приложение dash:

 import dash_table
import pandas as pd
import dash
import psycopg2

conn = psycopg2.connect(
    host="xxxxx.xxxxx.amazonaws.com",
    port = 5432,
    database="xxxxx",
    user="xxxxx",
    password="xxxxxxxxxxx")

statment= f"""
select a,b,c,d, count(c) as count_c
from public.table
group by 1,2,3,4
order by 5 desc
"""
df= pd.read_sql_query(statment ,con=conn)

app = dash.Dash(__name__)

app.layout = dash_table.DataTable(
    columns=[{"name": i, "id": i} for i in df.columns],
    data=df.to_dict('records')
)

if __name__ == '__main__':
    app.run_server(debug=True)

 

Проблема в том, что SQL-запрос выполняется 1-2 минуты, когда Heroku ограничивает время выполнения только до 30 секунд, и после этого появляется ошибка «истек тайм-аут»

Решение состоит в том, чтобы запустить приложение в фоновом режиме. По справке Heroku https://devcenter.heroku.com/articles/python-rq не очень понятно, как совместить это с приложением Dash.

Кто-нибудь может помочь, как запустить фоновое задание или любым другим способом для приложения Dash?