MicroBatcher
MicroBatcher is a library that allows you to process jobs in batches, providing a more efficient way of handling multiple jobs simultaneously.
Installation
To install the MicroBatcher library, you can use npm:
npm install @carmen0208/micro-batcher
Usage
Here is an example of how you can use the MicroBatcher library:
import { MicroBatcher, JobResult, JobStatus } from '@carmen0208/micro-batcher';
const batchProcessor = async (jobs: number[]): Promise<JobResult<number>[]> => {
};
const config = { maxBatchSize: 3, maxWaitTimeMs: 5000 };
const microBatcher = new MicroBatcher<number>(batchProcessor, config);
const job1 = 1;
const job2 = 2;
const job3 = 3;
const result1 = microBatcher.submitJob(job1);
const result2 = microBatcher.submitJob(job2);
const result3 = microBatcher.submitJob(job3);
const jobProcessResult = microBatcher.getJobProcessResult();
microBatcher.shutdown().then((finishedJobs) => {
});
API
submitJob(job: T): JobResult<T>
Submits a single job to the micro-batcher for processing.
job
- The job to be processed.- Returns a
JobResult
object representing the status of the submitted job. The returned promise resolves with the job result.
getJobProcessResult(): JobResult<T>[]
Returns the current status of all jobs in the micro-batcher. This method combines the jobs from the jobs pool and the finished jobs.
- Returns an array of
JobResult
objects representing the status of each job.
shutdown(): Promise<JobResult<T>[]>
Shutdowns the micro-batcher and processes all remaining jobs.
- Returns a promise that resolves when all jobs have been processed.