有什麼方法可以在事件循環中將優先級應用於Node.js任務。 我想爲nodejs的事件循環中存在的任務分配優先級。
假設在事件循環中有5個作業A,B,C,D,E,它們具有相同的優先級,然後接收其優先級高於後五個作業的下一個作業。然後事件循環開始執行該更高優先級的作業。爲事件循環中的nodejs任務分配優先級
7
A
回答
1
node.js中的事件循環不支持優先級。看到一些文檔:
短重寫它的,我不認爲有什麼可以做一下。
2
您應該使用優先級隊列,像priorityqueuejs
通過這種方式,你可以出隊與最高優先級的項目,並執行它。
一些代碼:
'use strict';
var PriorityQueue = require('priorityqueuejs');
var queue = new PriorityQueue(function(a, b) {
return a.value - b.value;
});
queue.enq({ value: 10, func: function() { console.log("PRIORITY: 10"); } });
queue.enq({ value: 500, func: function() { console.log("PRIORITY: 500"); } });
queue.enq({ value: 300, func: function() { console.log("PRIORITY: 300"); } });
queue.enq({ value: 100, func: function() { console.log("PRIORITY: 100"); } });
(function executeNext() {
if(queue.size()) {
var next = queue.deq();
next.func();
if(queue.size()) {
setTimeout(executeNext, 0);
}
}
})();
,輸出是:
PRIORITY: 500
PRIORITY: 300
PRIORITY: 100
PRIORITY: 10
這裏是executeNext
函數提取的下一個最優先項目,並執行它。
相關問題
- 1. 爲Parallel.For循環設置優先級
- 2. 芹菜任務優先級
- 3. 優先級任務列表
- 4. jquery事件的優先級
- 5. JavaScript事件的優先級
- 6. 事件的優先級
- 7. Eclipse中的任務優先級
- 8. Oracle中的自願事務優先級
- 9. 優先級嵌套事件
- 10. 循環,具有優先級/順序
- 11. 事務隊列的優先級(msmq)
- 12. 線程 - 優先級突發事件與優先級
- 13. 在HTML事件中設置優先級
- 14. 如何獲得任務優先級
- 15. 任務工作項目優先級
- 16. 任務/活動優先級/依賴性
- 17. 保持任務優先級(ASP.NET MVC)
- 18. 查找任務優先級rtos
- 19. 優先級隊列中的優先級
- 20. 優先分配
- 21. Windows命令行 - 爲循環內的FINDSTR指定高優先級
- 22. 爲數組中的對象分配優先級值
- 23. NodeJS事件循環與事件偵聽
- 24. 更改事件的優先級與jQuery
- 25. 設置VB.NET事件的優先級
- 26. DOM事件的優先級隊列
- 27. 添加具有優先級的TFS任務,分配給使用C#
- 28. 組件與指令事件優先級
- 29. 優先級和優先級
- 30. Nodejs - 具有循環的node-mysql事務
一個代碼示例會有所幫助。 – tikider 2014-09-30 08:46:18
添加示例請檢查它。 – Sanket 2014-09-30 11:14:57
你爲什麼需要這樣做? – neelsg 2014-09-30 11:33:21