Skip to content

Commit 63a1b18

Browse files
committed
Add more tasks
1 parent 070e4ec commit 63a1b18

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

README.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,45 @@ preparing.process(item => {
4040
console.log(item);
4141
});
4242
```
43+
44+
Реализация стека со сбором статичтики на замыканиях
45+
```
46+
const q = queue();
47+
48+
// Используем при помощи методов
49+
q.put(obj1);
50+
q.pick((obj2) => { });
51+
52+
// Выводим статистику использования
53+
console.dir(q);
54+
55+
/* {
56+
elapsedTime: 12783, // время существования стека
57+
processed: 1773, // кол-во было обработано всего
58+
processing: 29, // кол-во обрабатывается сейчас
59+
minTime: 6, // минимальное время элемента в стеке
60+
maxTime: 1720, // максимальное время элемента в стеке
61+
averageTime: 803, // среднее время с стеке
62+
} */
63+
```
64+
65+
Реализация конкурентной очереди с приоритетами и трехканальной обработкой
66+
с таймаутами на замыканиях (реализация СМО, системы массового обслуживания)
67+
```
68+
const q = queue(3).timeout(2000);
69+
70+
q.process((item, callback) => {
71+
process.nextTick(() => {
72+
console.log(item);
73+
callback();
74+
});
75+
});
76+
77+
q.drain(() => {
78+
console.log('Queue drain');
79+
});
80+
81+
for (let i = 0; i < 10; i++) {
82+
q.add({ i }, i % 2); // второй параметр - приоритет
83+
}
84+
```

0 commit comments

Comments
 (0)