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 => {
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+ ```
You can’t perform that action at this time.
0 commit comments