glue-core-0.4.0: Make better services.

Safe HaskellNone



Module containing a form of caching where values for given keys are preloaded ahead of time. | Once warmed up requests for preloaded keys will be instant, with the values refreshed in the background.



data PreloadedOptions m a b Source

Options for determining behaviour of preloading services.

defaultPreloadedOptions :: HashSet a -> MToIO m -> PreloadedOptions m a b Source

Defaulted options for preloading a HashSet of keys with a 30 second refresh time.

preloadingService Source


:: (MonadIO m, MonadIO n, MonadBaseControl IO m, MonadBaseControl IO n, Eq a, Hashable a, Show a) 
=> PreloadedOptions m a b

Instance of PreloadedOptions to configure the preloading functionality.

-> MultiGetService m a b

The service to perform preloading of.

-> n (MultiGetService m a b, () -> n ()) 

Preloads the results of calls for given keys.

preloadedKeys :: PreloadedOptions m a b -> HashSet a Source

Keys to preload.

preloadingRefreshTimeMs :: PreloadedOptions m a b -> Int Source

Amount of time between refreshes.

preloadingRun :: PreloadedOptions m a b -> MToIO m Source

Get an IO of the response for the caching.