File tree Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change @@ -40,3 +40,45 @@ preparing.process(item => {
40
40
console .log (item);
41
41
});
42
42
```
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
+ ```
You can’t perform that action at this time.
0 commit comments