Heroku R10 ошибка времени загрузки с Python и Dash - PullRequest
0 голосов
/ 01 ноября 2019

Я создаю приложение, используя Heroku, и мне удалось развернуть сайт в небольшом масштабе. (Я использую только 5 или около того страниц в этом мелкомасштабном развертывании для тестирования). У меня есть около 30 разных страниц как часть этого приложения. Все они очень похожи, но имеют разные данные и цветовую схему. Функциональность одинакова для всех из них.

Ошибка времени загрузки R10 возникает, когда я пытаюсь развернуть приложение со всеми 30 страницами. Мой индексный файл ниже. Когда я получаю сообщение об ошибке, я пытаюсь импортировать все файлы.

Мне кажется, я получил R10, потому что мое приложение не может импортировать все 30 страниц за 60 секунд. Если я жду импорта файлов, когда они нажимают на каждую ссылку, то обратные вызовы не работают, если вы не обновите страницу. Это своего рода метод, который я делаю в моем текущем индексном файле. Тем не менее, приложение создает и развертывает очень быстро. Какие у меня варианты?

import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
import dash_bootstrap_components as dbc
from app import app
from app import server
from apps import pitch
from apps import first
from apps import bal
#from apps import nyy
#from apps import tbr
#from apps import bos
#from apps import tor
#from apps import mins
#from apps import cle
#from apps import chw
#from apps import kcr
#from apps import det
#from apps import hou
#from apps import oak
#from apps import tex
#from apps import laa
#from apps import sea
#from apps import atl
#from apps import wsn
#from apps import phi
#from apps import nym
#from apps import mia
#from apps import stl
#from apps import mil
#from apps import chc
#from apps import cin
#from apps import pit
#from apps import lad
#from apps import sdp
#from apps import sfg
#from apps import ari
#from apps import col

app.layout = html.Div([
    dcc.Location(id='url', refresh=False),
    html.Div(id='page-content')
])


@app.callback(Output('page-content', 'children'),
              [Input('url', 'pathname')])
def display_page(pathname):
    if pathname == '/first':
        return first.layout
    elif pathname == '/pitch':
        return pitch.layout
    elif pathname == '/bal':
        return bal()
    elif pathname == '/nyy':
        from apps import nyy
        return nyy()
    elif pathname == '/tbr':
        from apps import tbr
        return tbr.layout
    elif pathname == '/bos':
        from apps import bos
        return bos.layout
    elif pathname == '/tor':
        from apps import tor
        return tor.layout
    elif pathname == '/mins':
        from apps import mins
        return mins.layout
    elif pathname == '/cle':
        from apps import cle
        return cle.layout
    elif pathname == '/chw':
        from apps import chw
        return chw.layout
    elif pathname == '/kcr':
        from apps import kcr
        return kcr.layout
    elif pathname == '/det':
        return det.layout
    elif pathname == '/hou':
        return hou.layout
    elif pathname == '/oak':
        return oak.layout
    elif pathname == '/tex':
        return tex.layout
    elif pathname == '/laa':
        return laa.layout
    elif pathname == '/sea':
        return sea.layout
    elif pathname == '/atl':
        return atl.layout
    elif pathname == '/wsn':
        return wsn.layout
    elif pathname == '/phi':
        return phi.layout
    elif pathname == '/nym':
        return nym.layout
    elif pathname == '/mia':
        return mia.layout
    elif pathname == '/stl':
        return stl.layout
    elif pathname == '/mil':
        return mil.layout
    elif pathname == '/chc':
        return chc.layout
    elif pathname == '/cin':
        return cin.layout
    elif pathname == '/pit':
        return pit.layout
    elif pathname == '/lad':
        return lad.layout
    elif pathname == '/sdp':
        return sdp.layout
    elif pathname == '/sfg':
        return sfg.layout
    elif pathname == '/ari':
        return ari.layout
    elif pathname == '/col':
        return col.layout
    else:
        return first.layout


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

Мой github здесь , а мой веб-сайт здесь . Обратите внимание, что Baltimore Orioles (bal) в AL East работает так, как я хочу, а New York Yankees (nyy) - нет. Я использую импорт при запуске с Балтимора, а импорт по ссылке - с Нью-Йорком.

Это приложение работает локально, но для запуска требуется некоторое время.

Любая помощь или советы будут очень полезныценится!

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...