batch-cluster
Advanced tools
Changelog
v8.0.1
🐞/📦 BatchProcess now end on spurious stderr/stdout, and reject tasks if ending.
📦 Relaxed default for streamFlushMillis
to deflake CI
Changelog
v8.0.0
💔/📦 RegExp pass/fail strings are escaped (which could conceivably be a breaking change, hence the major version bump)
📦 Refactored stdout/stderr merging code and added more tests
📦 Added new "taskResolved" event
📦 Rebuild docs
📦 Updated development dependencies
Changelog
v7.2.0
Changelog
v7.1.0
✨ Added on("healthCheckError", err, proc)
event
🐞 Fixed process start lag (due to startup tasks not emitting an .onIdle
)
🐞 Reworked when health checks were run, and add tests to validate failing health checks recycle children
📦 Rebuild docs
Changelog
v7.0.0
💔 Several fields were renamed to make things more consistent:
BatchCluster.pendingTasks
was renamed to BatchCluster.pendingTaskCount
.BatchCluster.pendingTasks
method now matches BatchCluster.currentTasks
, which both return Task[]
.BatchCluster.busyProcs
was renamed to busyProcCount
.BatchCluster.spawnedProcs
was renamed to spawnedProcCount
.✨ Added support for "health checks" that run periodically on child processes.
Both healthCheckCommand
and healthCheckIntervalMillis
must be set to
enable this feature.
✨ New pidCheckIntervalMillis
to verify internal child process state is kept
in sync with the process table. Defaults to every 2 minutes. Will no-op if idle.
✨ New BatchCluster.childEndCounts
to report why child processes were recycled (currently "dead" | "ending" | "closed" | "worn" | "idle" | "broken" | "old" | "timeout" )
📦 Cleaned up scheduling: the prior implementation generated a bunch of
Promise
s per idle period, which was rough on the GC. Use of Mutex
is now
relegated to tests.
📦 tsconfig
now emits ES2018
output and doesn't have downlevelIteration
,
which reduces the size of the generated javascript, but requires contemporary
versions of Node.js.
📦 BatchClusterOptions
doesn't mark fields as readonly
anymore
📦 Task
has a default type of any
now.
Changelog
v6.2.0
Changelog
v6.1.0
BatchCluster.closeChildProcesses()
(ends child processes but doesn't .end()
the BatchCluster instance)