My initial idea was a variable in the cache that is read in order to invoke a timer service every 24 hours. But for that a lock is required in every cache when this object is accessed by the first application instance.
The other solution is to have the variable in the DB and there it can be locked.
Timer services are not a good use case for a cache since every cache access would involve a write. You're better off using a shared DB for this.
Caches are primarily for "read-mostly" situations.