All Versions
Latest Version
Avg Release Cycle
18 days
Latest Release
1755 days ago

Changelog History

  • v2.19.5 Changes

    August 03, 2019
    • 🛠 Fixes a minor and rare race condition in Clustering due to an inconsistent network. The only negative effects were an error message and an expired job not be retried. Thank you @gr2m for reporting this issue #132
  • v2.19.4 Changes

    August 03, 2019
    • 🛠 Fixes a few issues with the TypeScript type definitions.
  • v2.19.3 Changes

    July 16, 2019
    • 👍 Allow directly passing the redis/ioredis module. This fixes an issue for Clustering users that bundle their app, as seen in serverless environments. Thank you @cliffkoh for the issue #130
  • v2.19.2 Changes

    July 06, 2019
    • Fixed an issue when using Redis Cluster and a custom Redis client object. Thank you @marektihkan for the excellent bug report #129
    • 🛠 Fixed issue with light bundle, it would broadcast a lot of annoying but harmless exceptions on the error listener. Thank you @richtera for the excellent bug report #127
    • ⚡️ Updated several (dev) dependencies. Bottleneck continues to have zero run time dependencies.
  • v2.19.1 Changes

    June 08, 2019
    • 🛠 Fixed TypeScript typings

    The "failed" event listener typings did not allow returning undefined/null or Promise<undefined>/Promise<null>.

    Thank you @dobesv for your contribution!

  • v2.19.0 Changes

    June 01, 2019
    • ➕ Added the following events: received, queued, scheduled, executing and done.

    🐎 They map to Jobs Lifecycle transitions. These events are local to a limiter inside a Cluster, for performance reasons.

    Thank you @lp-wodell for the feature suggestion! #124

  • v2.18.1 Changes

    May 11, 2019
    • ⬇️ Reduced the memory usage of queued jobs by 40%.

    🔨 This massive gain is thanks to a refactor of the engine internals. The behavior of this module should be unchanged. If Bottleneck 2.18.1 behaves differently from 2.18.0 in your application, please open an issue.

    • ⚠ Expired jobs without a catch would not trigger the Node.js "Unhandled Promise Rejection" warning.

    👷 This has been fixed and Node now correctly alerts you, as this points to a bug in your application. async/await users: wrap your jobs into a try/catch at the place where the job is await'ed. Promise users: make sure your jobs have a .catch().

  • v2.18.0 Changes

    April 13, 2019

    ➕ Added Increase Intervals. Similar to the Refresh Interval, it increases a limiter's reservoir on an interval. Instead of resetting the reservoir to a specific value, it increments the reservoir by a certain value, up to an optional maximum value.

    Thanks @TheGame2500 and @tomblanchard for suggesting this feature.

  • v2.17.1 Changes

    April 13, 2019

    ⚡️ Optimized Clustering code for use cases where short lived clients are created at a high rate.

  • v2.17.0 Changes

    February 25, 2019
    • 🔀 Bottleneck now ensures that jobs passed to schedule() and wrap() will return a promise, even if it failed with a synchronous exception. It is poor practice in JS to mix synchronous and asynchronous failures in the same flow. Few users will be affected by this change, and those who are affected will now benefit from more reliable code as a result.

    Thank you @elliot-nelson for this feature #116

    • 🐎 Bottleneck Clustering now cleans up Redis data from unresponsive clients. This change has no effect on functionality, directly or otherwise. Previously, Bottleneck left the data in Redis to avoid complex race conditions when unresponsive clients reconnect after a delay. As of v2.17.0, those race conditions are explicitly handled and Bottleneck cleans up data on the fly. These changes allowed for several efficiency optimizations. Large scale users should notice improved performance. More details in #115 and #112