Skip to content

About

cache that automatically updated

Resources

Stars

5 stars

Watchers

2 watching

Forks

Latest commit

 

History

12 Commits

Folders and files

Repository files navigation

Tie::Cache::Autoupdater
-----------------------
A tied hash whose values refresh themselves on a timeout.

Long-running processes - FastCGI workers, daemons, queue consumers - often need
data that changes rarely, but not never: site settings, row counters, a price
list, a feature flag. Fetching it from the database on every request is
wasteful, and fetching it once at start-up is wrong, because the process may
stay alive for days while the data behind it changes every few minutes.

This module ties a hash to a set of named data sources. You register a key with
a subroutine and a timeout, and from then on reading that key gives you the
cached value until the timeout expires; the first read after that calls the
subroutine again and caches the new result.

    use Tie::Cache::Autoupdater;

    tie my %cache, 'Tie::Cache::Autoupdater',
        settings => { source => \&read_settings_from_db, timeout => 60 },
        counters => { source => \&count_table_rows,      timeout => 10 };

    my $settings = $cache{settings};

See the module documentation for the full description:

    perldoc Tie::Cache::Autoupdater

REQUIREMENTS
------------
Perl and the core modules Storable and, optionally, Time::HiRes - the latter is
used for fractional timeouts when it is available.

Tested on perl 5.26 through 5.42.

HOW TO BUILD
------------
perl Makefile.PL
make
make test

HOW TO INSTALL
--------------
make install

COPYRIGHT
---------
Copyright 2011-2026 by Anton Morozov (antonfin)

This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See the LICENSE file for the full text.

About

cache that automatically updated

Resources

Stars

5 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages