queue_plus 0.1.2
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();