Skip to content

shaunburdick/pythagorean-cache

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e8a7978 · Dec 27, 2024

History

11 Commits
Dec 27, 2024
Dec 27, 2024
Dec 27, 2024
Apr 25, 2019
Apr 25, 2019
Dec 27, 2024
Dec 27, 2024
Dec 27, 2024
Dec 27, 2024
Dec 27, 2024
Dec 27, 2024
Dec 27, 2024

Repository files navigation

Pythagorean Cache

npm version Build Status

🍷A cache that dumps when full or at an interval

cup

Example

import { PythagoreanCache } from 'pythagorean-cache';

// dump when size reaches 10
const cache = new PythagoreanCache<string>({ size: 10 });

cache.on('dump', () => {
  /* do something with 10 items */
});

for (let x = 0; x < 10; x++) {
  cache.push(`Hello ${x}`);
}

Options

  • size: The size of the cache. When the size is reached, a dump event is fired with all the items in the cache and then emptied
  • interval: The number of microseconds to wait before firing a dump event. This can be used to dump the cache at regular intervals.

These options can be combined, allowing you to create a cache that dumps at a certain size or at a certain interval.

Inspired Use Case

I was receiving a bursting stream of events I needed to add to a database. Instead of inserting each one as they come in, it was more efficient to do bulk inserts at intervals/sizes. This way that database was protected from burst events and I could expect the events to be inserted within a certain amount of time regardless.

About

🍷A cache that dumps when full or at an interval

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published