Python和Dash的Heroku R10引导时间错误

时间:2019-11-01 15:21:41

标签: python heroku plotly-dash

我正在使用Heroku创建一个应用,并且已经成功地小规模部署了该网站。 (在这种小型部署中,我仅使用5个左右的页面进行测试)。我有大约30个不同的页面,作为此应用程序的一部分。它们都非常相似,但是它们具有不同的数据和配色方案。所有功能都相同。

当我尝试部署所有30页的应用程序时,会发生R10启动时间错误问题。我的索引文件在下面。出现错误时,我正在尝试导入所有文件。

我相信我会得到R10,因为我的应用无法在60秒内导入全部30个页面。如果我在单击每个链接时等待导入文件,则除非刷新页面,否则回调将不起作用。这是我在当前索引文件中执行的方法。但是,该应用程序确实可以快速构建和部署。我有什么选择?

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是here,我的网站是here。请注意,AL East的Baltimore Orioles(bal)像我想要的那样工作,New York Yankees(nyy)则不然。我在巴尔的摩启动时使用导入,而在纽约单击链接时使用导入。

此应用在本地运行,但需要一段时间才能启动。

任何帮助或提示将不胜感激!

谢谢

0 个答案:

没有答案