Well the only other way I can think of is that you could use Transients which expires. When it expires = update it again.
https://codex.wordpress.org/Transients_API
Not sure it’s the right way to go tho unless you’re confident in keeping the information in a transient rather than as a meta value.
Otherwise I see no reason why you couldn’t use cron. 🙂