Implement a heartbeat client for the jobs
from https://prometheus.io/docs/practices/instrumentation/#offline-processing

> Knowing the last time that a system processed something is useful for detecting if it has stalled, but it is very localised information. A better approach is to send a heartbeat through the system: some dummy item that gets passed all the way through and includes the timestamp when it was inserted. Each stage can export the most recent heartbeat timestamp it has seen, letting you know how long items are taking to propagate through the system. For systems that do not have quiet periods where no processing occurs, an explicit heartbeat may not be needed.

In the context of the datasets-server, it might be done by asking to refresh the cache for a very small dataset, every 10 minutes for example.
Implement a heartbeat client for the jobs: from https://prometheus.io/docs/practices/instrumentation/#offline-processing

> Knowing the last time that a system processed something is useful for detecting if it has stalled, but it is very localised information. A better approach is to send a heartbeat through the system: some dummy item that gets passed all the way through and includes the timestamp when it was inserted. Each stage can export the most recent heartbeat timestamp it has seen, letting you know how long items are taking to propagate through the system. For systems that do not have quiet periods where no processing occurs, an explicit heartbeat may not be needed.

In the context of the datasets-server, it might be done by asking to refresh the cache for a very small dataset, every 10 minutes for example.