Dart Task Queue

A powerful and flexible task queue implementation for Dart applications, providing efficient management of asynchronous tasks with status tracking and timeout capabilities.

Features

  • ✨ Queue-based task management
  • 🔄 Task status tracking (pending, running, completed, cancelled, failed)
  • ⏱️ Configurable timeout for tasks
  • 🎯 Maximum queue length control
  • 📊 Task state change notifications
  • 🔍 Stream-based state monitoring
  • 🎛️ Singleton queue manager for multiple queue instances

Installation

dart pub add dart_task_queue

Usage

Basic Usage

// Create a custom task queue
class MyTaskQueue extends TaskQueue {}

// Get or create a queue instance
final myQueue = Queue.getOrCreate(MyTaskQueue());

// Add a task
final task = myQueue.addTask(() async {
    // Your async task here
    await Future.delayed(Duration(seconds: 1));
});

// Monitor task state changes
task.stateStream.listen((state) {
    print('Task state changed to: $state');
});

Task Queue Manager

// Create multiple queue types
class DownloadQueue extends TaskQueue {}
class UploadQueue extends TaskQueue {}

// Get specific queue instances
final downloadQueue = Queue.getOrCreate(DownloadQueue());
final uploadQueue = Queue.getOrCreate(UploadQueue());

// Clean up when done
Queue.delete<DownloadQueue>();
Queue.deleteAll(); // Remove all queues

Configuration

class MyTaskQueue extends TaskQueue {
    MyTaskQueue() {
        maxQueueLength = 20; // Set maximum queue size
        timeout = 60; // Set timeout in seconds
    }
}

Libraries

dart_task_queue