JoSk (v6.2.0) is a Node.js task manager for horizontally scaled applications, mimicking native setTimeout/setInterval API with CRON support. It synchronizes queued tasks across multiple application instances via Redis, MongoDB, or PostgreSQL adapters, using storage-level leases and atomic task claims to ensure each tick is processed by exactly one instance. Released under BSD-3-Clause, with zero runtime dependencies, TypeScript types, and support for Node.js >=20.9.0 and Bun >=1.1.0. Suitable for clusters, multi-server, and multi-threaded environments, as well as single-instance apps.
npm install joskNo compatibility data collected yet for this library.
Verified import paths — ran on the pinned version, not inferred.
Creates a JoSk instance with Redis adapter, schedules interval and timeout tasks, and destroys scheduler after 30 seconds.
Use import syntax or dynamic import(). Ensure package.json has type: 'module'.
Change imports from 'josk' to 'josk/adapters' for adapter classes.
Use scheduler.setInterval(callback, 0, uid) instead of scheduler.setImmediate().
Ensure callback logic is self-contained or uses globally available references; do not rely on closure variables.
Generate unique UIDs (e.g., using crypto.randomUUID()) to avoid collisions.
Upgrade to josk@6 or use import { RedisAdapter } from 'josk' for older versions.Use import { JoSk } from 'josk' or switch to dynamic import() in Node.js.Ensure adapter is imported correctly and instantiated before passing to new JoSk({ adapter }).Grant write role on the specific database, or configure a user with appropriate privileges.
No dependency data recorded yet.