[Issue] Syncronous Code Blocks Execution for Other Users

I have a deployed app running on Google Compute Engine for internal company use. The computations performed based on the user’s input are fairly heavy and can take a few minutes to run. During this time, other users are not able to connect/use the app until the previous user’s execution finishes.

Is this a limitation of streamlit or an issue with how I’ve implemented my code? Does streamlit support async functions (if that would even help?). I’m looking for advice on how to work around this blocking issue without having to spin up more instances.

Thanks!

I like this question. I have a similar pending use case and have been concerned how resources are allocated.

I had assumed a scheduler allocated cpu time to each connected web socket to at least keep each session responsive.