1.7.0 • Published 3 years ago

throttler-d v1.7.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

Distributed Throttle

This module allows you to throttle the invocation of a function (just like Underscore#throttle) across a distributed system. It is built on top of Redis. It will currently always call the function on the leading edge and the trailing edge, just like Underscore's default implementation.

Installing

npm install throttler-d

Using

// with `ioredis` object

import { IThrottlerD, ThrottledException, createThrottlerD } from 'throttler-d';
import * as redis from 'ioredis';

const redisConnection = new redis();

const throttler: IThrottlerD = createThrottlerD(redisConnection);

throttler
  .call(
    'groupKey',
    function(err) {
      if (err) {
        console.log('error!', err);
        return;
      }
      console.log('do something');
    },
    10000, // 10 seconds
  )
  .then(console.log)
  .catch(console.error);

// If you want to cancel any pending call such that the next invocation will fire immediately.
throttler
  .cancel('groupKey')
  .then(console.log)
  .catch(console.error);

This repo is forked from mixmaxhq/node-distributed-throttle-function

1.7.0

3 years ago

1.6.0

3 years ago

1.5.0

3 years ago

1.4.0

3 years ago

1.3.0

3 years ago

1.2.0

3 years ago

1.1.0

3 years ago

1.0.0

3 years ago