Esiste un modo in cui è possibile applicare la priorità all'attività Node.js in un ciclo di eventi. Voglio assegnare la priorità all'attività che sono presenti in un ciclo di eventi di nodejs.
Supponiamo che in un ciclo di eventi ci siano 5 lavori A, B, C, D, E che hanno la stessa priorità e quindi viene ricevuto il lavoro successivo la cui priorità è superiore agli ultimi cinque lavori. Quindi il ciclo di eventi inizia a eseguire quel lavoro con priorità più alta.Assegna priorità alle attività nodejs in un ciclo di eventi
7
A
risposta
1
Il ciclo di eventi in node.js non supporta le priorità. Vedi un po 'di documentazione:
corto di riscriverlo, non credo che ci sia molto che si possa fare a tale proposito.
2
si dovrebbe usare una coda di priorità, qualcosa come priorityqueuejs
In questo modo è possibile annullare l'accodamento di un elemento con la priorità massima ed eseguirlo.
Alcuni codice:
'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);
}
}
})();
e l'uscita è:
PRIORITY: 500
PRIORITY: 300
PRIORITY: 100
PRIORITY: 10
Ecco la funzione executeNext
estrae l'elemento successivo massima priorità e lo esegue.
Problemi correlati
- 1. Priorità attività in sedano con redis
- 2. come aggiungere funzionalità priorità attività
- 3. asincrono lampone pi eventi GPIO in nodejs
- 4. creazione di attività utilizzando un ciclo [gulp]
- 5. Impossibile creare un ciclo di eventi figlio
- 6. Come cambiare la priorità gestore di eventi in Symfony 2
- 7. Programmatore di attività a livello di concorrenza limitato (con priorità delle attività) gestione delle attività avvolte
- 8. Ciclo eventi Node.js
- 9. nodejs formidabili non innescare eventi
- 10. Un ciclo su più attività Ansible
- 11. Assegna Click Eventi a < li > in JQuery Treeview
- 12. Creare un osservabile per un ciclo di eventi
- 13. Invia un lavoro a un ciclo di eventi asyncio
- 14. eventi Node.js EventEmitter non condividono ciclo di eventi
- 15. .Net TPL: programmatore di attività a livello di concorrenza limitato con priorità delle attività?
- 16. Coda eventi/attività Multithreading C++
- 17. NodeJS - rendendo il ciclo while sincrono
- 18. ciclo di eventi Javascript. Chiarificazione necessaria
- 19. Il modo C++ per creare un ciclo di eventi
- 20. Comprensione delle priorità quando si assegna e verifica la definizione in Perl
- 21. sedano - Attività che devono essere eseguite con priorità
- 22. È possibile iscriversi alle sottoscrizioni di eventi in C#?
- 23. Esistono differenze significative tra il ciclo degli eventi del browser Chrome e il ciclo degli eventi del nodo?
- 24. Coda priorità doppia priorità
- 25. Eventi sconosciuti in nodejs/v8 flamegraph usando perf_events
- 26. Eventi del ciclo di vita della pagina in xamarin.forms
- 27. Esegui attività in base alle dipendenze in Go
- 28. Come si implementa la priorità delle attività utilizzando un ExecutorService in Java 5?
- 29. Lista di priorità efficiente
- 30. Modificare la priorità in una coda di priorità personalizzata
Un esempio di codice potrebbe essere d'aiuto. – tikider
Esempio aggiunto per favore controllalo. – Sanket
Perché dovresti farlo? – neelsg