有什么方法可以在事件循环中将优先级应用于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