Hello again. I came back with the same problem. I did as you indicated and now, indeed, different user_page is generated for different users. The problem is that while one user_page is being processed, the server seems to freeze for the rest of the users. How can this problem be solved?
def my_layer(df_candle, df_tick):
@pn.depends(pn.state.param.busy)
def indicator(busy):
return pnw.Progress(sizing_mode='scale_width') if busy else '### Done!'
strategy = pnw.Select(name='Strategy', value='ZZ',
options=['ZZ', 'Shiftma'])
start_year = pnw.Select(name='Start Year', value=2021,
options=[2019, 2020, 2021])
start_day = pnw.Select(name='Start Day', value=1,
options=list(range(1, 32)))
start_month = pnw.Select(name='Start Month', value=1,
options=list(range(1, 13)))
end_year = pnw.Select(name='End Year', value=2022,
options=[2019, 2020, 2021, 2022])
end_day = pnw.Select(name='End Day', value=1,
options=list(range(1, 32)))
end_month = pnw.Select(name='End Month', value=1,
options=list(range(1, 13)))
width = pnw.IntSlider(name='Plot width', value=1200, start=500, end=1500, step=50)
height = pnw.IntSlider(name='Plot height', value=600, start=300, end=1500, step=50)
layer = pn.bind(partial(get_layer, df_candle, df_tick), strategy=strategy, width=width, height=height,
start_day=start_day, start_month=start_month, start_year=start_year,
end_day=end_day, end_month=end_month, end_year=end_year, )
widgets = pn.Column("<br>\n# Plot Settings", strategy, width, height, start_year, start_month, start_day,
end_year, end_month, end_day, indicator)
layers = pn.Row(widgets, layer)
return layers
def foo():
return my_layer(df_candle, df_tick)
def run_server(func, port=8006, allow_websocket_origin=None, show=False, **kwargs):
pn.serve(func, port=port, allow_websocket_origin=allow_websocket_origin, show=show, title='Strategy backtest',
**kwargs)
from tornado.ioloop import IOLoop
loop = IOLoop.current()
loop.start()