abstract-scheduler
An interface and test suite to implement various scheduling algorithms. The goal is to define a simple and flexible standard for libraries that implement scheduling algorithms, so that you can replace them easily.
const createScheduler = const servers = servers // '1.example.com'servers // '2.example.com'servers // '1.example.com'
abstract-scheduler
-compatible modules
Send a PR by adding yours!
@derhuerst/round-robin-scheduler
– A round-robin scheduler.
Badge
Include this badge if you make a library compatible with abstract-scheduler
.
[![compatible with abstract-scheduler](https://unpkg.com/abstract-scheduler@4/badge.svg)](https://github.com/derhuerst/abstract-scheduler)
abstract-scheduler
compatibility
How to test for npm i abstract-scheduler --save-dev
Include this in your test file:
const runAbstractSchedulerTests = const createMyScheduler =
tape
will be used to test, writing TAP to stdout
.
abstract-scheduler
API
The createScheduler(values = [])
Create an empty scheduler or provide some initial values.
scheduler.add(value)
Add a value to the scheduler. Returns the (0
-based) index of the stored value.
scheduler.remove(i)
Remove a value by (0
-based) index. Returns true
if the scheduler contained value, false
otherwise.
scheduler.has(value)
Checks whether the given value is already in the scheduler. Returns either true
or false
.
scheduler.get()
Get the next value according to the scheduling algorithm.
Related
abstract-scheduler
is inspired by abstract-chunk-store
, abstract-blob-store
and abstract-point-store
.
Contributing
If you have a question or need support using abstract-scheduler
, refer to the issues page.