I think I may have tried to be a bit too clever.
I have a streamlit page which displays data retrieved from a xls file at a fixed URL.
I have cached the function which retrieves this data with the standard st.cache decorator. The data is updated every week (at 6pm on Thursdays) and I previously used to manually reset the cache when new data was available with the R key.
My streamlit server is on Google cloud, so I am a remote visitor, and after updating my streamline installation this cache reset function is no longer available to visitors.
Fine - sensible and safe. I should really be setting a programmatic cache control anyway.
So, I calculated the number of seconds until the update is due, and when calling the data function the cache ttl is now set to this value.
And now I am confused. I am calling a cached function but with a variable TTL each time. What will happen? Is the TTL updated each time I call it? Is it only set on a cache miss? Should I be doing something else entirely?
I can obviously try it and see, but it’s tedious to wait a whole week to check every change…
All advice gratefully received.