Control the web requests of my streamlit app on Community Cloud

Dear wizards,

I have an streamlit app deployed on a free account of the Community Cloud,

The app would use more than 1 GB of memory and generate errors when multiple requests happen at the same time. Is there a way in streamlit to queue all the web requests and prosecute them one-by-one?

Thanks a lot!

Chun Shen

Hello Chun Shen! :wave:

Firstly, welcome to the Streamlit community!

Regarding your issue, Streamlit apps on Community Cloud have resource limits since it’s a free platform. If your app exceeds the allowed memory usage or if there’s a spike in traffic, you might experience errors.

Here are some workarounds:

Optimize your app: Before considering request queuing, consider optimizing your Streamlit app to use less memory:

  • Use smaller data structures.
  • Avoid keeping large datasets in memory, instead load them when required.
  • If needs be, you can use tools like memory-profiler to see where your app is consuming the most memory and try to optimize that portion of the code.

Hosting elsewhere: Another solution is to host your Streamlit app on platforms like AWS, GCP, or Heroku where you have more control over the infrastructure. With a platform like AWS, you could potentially use services like AWS Lambda to queue and manage requests.

I hope this helps. Let us know how it goes!

Best wishes,

Hi Charly,

Thanks a lot for the suggestions! I will try to optimize the memory usage of my app.


1 Like