queue_plus 0.1.2 copy "queue_plus: ^0.1.2" to clipboard
queue_plus: ^0.1.2 copied to clipboard

A Very Good Project created by Very Good CLI.

Queue Plus #

[coverage]

Why ?? #

I needed a package to handle advanced ble device sending queue processing icluding:

✅ basic queueing functinoality (add, remove, clear, etc)

✅ queueing with delay & timeout

✅ queueing with priority

⭕️ queueing with retry strategy

Installation #

Install via dart pub add:

dart pub add queue_plus

Example #


  QueuePlus<void> queue = QueuePlus(onComplete: () async => print('Queue 1 completed'));
  var queue1itemsListener = queue.remainingItems.listen((count) {
    print('Queue 1 Remaining items: $count');
  });
  queue.add(QueueItem(task: () async => Future.delayed(Duration(seconds: 1), () => print('Queue1: 1'))));
  queue.add(QueueItem(task: () async => Future.delayed(Duration(seconds: 1), () => print('Queue1: 2'))));
  queue.add(QueueItem(task: () async => Future.delayed(Duration(seconds: 1), () => print('Queue1: 3'))));

  // second queue with 3 parallel process and each process take differnt time
  //
  // output:
  // Queue3: 1
  // Queue2: 3
  // Queue2: 2
  // Queue 2 completed
  QueuePlus<void> queue2 = QueuePlus(parallel: 3, onComplete: () async => print('Queue 2 completed'));
  var queue2itemsListener = queue2.remainingItems.listen((count) {
    print('Queue 2 Remaining items: $count');
  });
  queue2.add(QueueItem(task: () async => Future.delayed(Duration(seconds: 1), () => print('Queue2: 1'))));
  queue2.add(QueueItem(task: () async => Future.delayed(Duration(seconds: 3), () => print('Queue2: 2'))));
  queue2.add(QueueItem(task: () async => Future.delayed(Duration(seconds: 1), () => print('Queue2: 3'))));

  await queue.finished;
  await queue2.finished;
  queue1itemsListener.cancel();
  queue2itemsListener.cancel();
  queue.dispose();

1
likes
150
points
1
downloads

Publisher

unverified uploader

Weekly Downloads

A Very Good Project created by Very Good CLI.

Documentation

API reference

License

MIT (license)

More

Packages that depend on queue_plus