@polyweave/pool (1.0.4)
Installation
@polyweave:registry=https://hub.kl1.tenere.ai/api/packages/Polyweave/npm/npm install @polyweave/pool@1.0.4"@polyweave/pool": "1.0.4"About this package
Pool
Shared scheduling and requester pooling utilities for Polyweave.
Synopsis
import { createSharedScheduler, createQueuedRequester, createRequesterPool } from '@polyweave/pool';
const scheduler = createSharedScheduler({ concurrency: 3 });
function makeRequest(prompt, done) {
done(null, `response: ${prompt}`);
}
const queued = createQueuedRequester(makeRequest, scheduler);
queued('hello', (err, result) => {
console.log(result); // 'response: hello'
});
const pool = createRequesterPool({
createRequester: (i) => makeRequest,
size: 4,
scheduler
});
Install
npm install @polyweave/pool
Description
Pool provides shared scheduling, pauseable request queues, and round-robin requester pools. The scheduler enforces a concurrency cap and supports time-based pausing for rate-limit compliance.
API
createSharedScheduler(options)
Create a concurrency-capped task scheduler.
Parameters:
options.concurrency: max simultaneous tasks (default1, must be >= 1)
Returns { schedule, pauseUntil, pauseFor, getActive, getQueueLength }.
createQueuedRequester(requester, scheduler)
Wrap a requester function to enqueue through a scheduler. Returns the requester unchanged if no scheduler is provided.
createRequesterPool(options)
Create a round-robin pool of requesters.
Parameters:
options.createRequester(index): factory function called for each pool slotoptions.size: pool size (default1)options.scheduler: optional scheduler for concurrency limiting
Returns a pooled requester function.
Tests
npm test
Tests cover concurrency enforcement, queued execution, round-robin distribution, pause delay, and fuzz concurrency invariants.
Requirements
Node.js 18 or later. ESM only.
License
MIT
Dependencies
Development Dependencies
| ID | Version |
|---|---|
| @rigor/core | * |
| fast-check | * |