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?