Hi. We’re working on a generic solution for Dash apps that run relatively long processes (30s to 2 mins) that can be deployed on Heroku without tripping up on server & browser timeouts and still provide a reasonable-ish user experience. To make a new app we just copy-paste the boilerplate, drop in whatever processes and visualizations are needed and deploy.
- Loading spinner
- Retrieve css from static files
- “Please wait” message
- Frequent refreshing to prevent browser timeout while process is running
- Long processes are run by a background worker via Redis to prevent server timeout
It pulls in a number of different solutions we found here and elsewhere so perhaps it’s useful to share as an all-in-one for anyone else to adapt and use.
Disclaimer: We’re new to Dash so if anyone spots something to improve on let us know!