Efficiently run periodic, on-demand actions

Version on this page:0.1.4
LTS Haskell 22.25:0.1.6
Stackage Nightly 2024-06-14:0.2.0
Latest on Hackage:0.2.0

See all snapshots auto-update appears in

MIT licensed by Michael Snoyman
Maintained by [email protected]
This version can be pinned in stack with:auto-update-0.1.4@sha256:eff944a412a26c7e3950c52128ea3b24ef6838f821f2db9854c62b320225f2ca,1217

Module documentation for 0.1.4


A common problem is the desire to have an action run at a scheduled interval, but only if it is needed. For example, instead of having every web request result in a new getCurrentTime call, we’d like to have a single worker thread run every second, updating an IORef. However, if the request frequency is less than once per second, this is a pessimization, and worse, kills idle GC.

This library allows you to define actions which will either be performed by a dedicated thread or, in times of low volume, will be executed by the calling thread.

For original use case, see yesod-scaffold issue #15.



  • Provide updateActionModify API in AutoUpdate #547

  • Doc improvements


  • Adding a new AIP - reaperKill


  • Added Control.Debounce