async fn run_dm_pump(
host: Arc<dyn SlackHost>,
client: Arc<dyn SlackApi>,
workspace: String,
interval: Duration,
shutdown: Receiver<()>,
)Expand description
Sweep the DM class on its own task and its own clock, until shutdown
fires. The first pass runs at once - a restart has a gap to catch up on -
and every one after it waits the interval.