Skip to content

Task Queue

The TaskQueue class provides a simple queue processing system with batched operations and throttling. It's designed to handle asynchronous operations efficiently while maintaining control over processing rates and resource usage.

Basic Usage

typescript
// Create queue for processing messages
const queue = new TaskQueue<number>({
  chunkSize: 10,
  processItem: (n: number) => console.log(n)
})

// Add and remove items to/from queue
worker.push(10)
worker.push(21)
worker.remove(10)
worker.push(57)

Control Methods

Control message processing:

typescript
// Pause processing
worker.stop()

// Resume processing
worker.start()

// Clear queue
worker.clear()

API Reference

Constructor

typescript
class TaskQueue<Item> {
  constructor(readonly options: TaskQueueOptions<Item>) {}
}

The TaskQueue class accepts messages of type Item and processes them.

Configuration

typescript
type TaskQueueOptions<Item> = {
  // How many items to process at a time
  batchSize: number

  // A function for processing items. Any promises returned will be awaited
  processItem: (item: Item) => unknown
}