Hi Bokeh Dev team,
First time user here. I just wanted to say great library! I’ve done a lot of MATLAB GUI and Python pyqt in the past and I’ve always had problems with helping non SWE setup their environment. I don’t have lot of webdev experience, so Bokeh solves my problem! For context, I’m developing a bokeh app for non SW engineers to do data analysis. So I’m expecting 1 - 10 users for now, but if this successful, it could be up to 20 or 30 users. I am currently running bokeh serve w/ num_proc = 8 to handle the load, but I haven’t really tested more than 2 users yet.
Some of my code requires a blocking task (Parsing raw data) that could take 10s of seconds. I was wondering what are the negative effects of having a blocking task? I tried searching around and I couldn’t find anything besides don’t do it and make sure to add_next_tick_callback (Running a Bokeh server — Bokeh 2.4.2 Documentation).
So I was wondering, what’s the worst thing that could happen, how can I verify that this is indeed happening, and then I’d like to verify that I did fix the problem. I’m assuming I can cause bad behavior if I have two users connected to a single process and try to do stuff during a blocking task. If one user starts a blocking task, is the only thing that happens is that the second user can’t interact w/ their session any more? Is there anything else I need to know?
edit: Also I forgot to ask a couple more questions:
- Is the event loop running at some periodic rate
- In the linked example, do I always need this decorator when calling a callback with add_next_tick_callback?
@gen.coroutine
def update(x, y):
source.stream(dict(x=, y=[y]))
Thanks all!