Asynchronous multiple application deployment

First of all, thanks a lot for the bokeh developers and the community. I have found bokeh to be quite a useful tools.

I have developed several applications and each of them is an interactive plot with following features:

  1. Customized input. User can type in some parameters to change the figure being plotted. For example the start date and end date for a time series data.

2: Real time updating. Some apps are displaying some data from a real time data source. The way I did it is to add a periodic callback to the doc.

Operatin

The applications are written in 3 python files contained in 3 folders: app1/app1.py, app2/app2.py, app3/app3.py. Then I have a new python file called main.py with following code.

from bokeh.server.server import Server

from app1 import app1

from app2 import app2

from app3 import app3

server = Server({’/app1’: app1.app1, ‘/app2’: app2.app2 ‘/app3’: app3.app3}, io_loop=IOLoop(), allow_websocket_origin=[“my_websocket_origin”])

server.start()

server.run_until_shutdown()

server.io_loop.start()

Then I run it with “python main.py”, go to my_websocket_origin in browser I will see a list of apps.

Following are the problems I encountered with:

  1. If I open all the apps in the same time. First, it will take a long time to show all the apps in the webpage. Second, the

  2. I have one app which download some data(takes around 20s) upon opening it. If I open this app first, all the other apps open after it will not run until the downloading finished for the first app.

Based on these observation. I guess when publish multiple apps using the way I did, the whole process is not asynchronous. I am wondering is there a way to deploy multiple applications so that all the applications can be run concurrently?

Thanks in advance for all the help.