So führen Sie ein Multithread-Skriptprogramm in NodeJS aus

Vorwort (Sie müssen es nicht lesen, die persönlichen Erkenntnisse des Autors):

Ich habe in letzter Zeit Crawler-bezogene Skripte geschrieben. Wie wir alle wissen, ist JavaScript Single-Threaded, daher war ich zu Beginn des Schreibens des Skripts sehr dumm und habe darauf gewartet, die Informationen einzeln zu crawlen. Ein Problem, das ich festgestellt habe, ist das Dieses Verhalten ist zu ineffizient und sollte unmöglich sein. Das war's, also habe ich mehr über Multi-Threading und Single-Threading gelernt. Tatsächlich hätten die meisten Computerstudenten von den Grundkonzepten gehört. Genauso wie ich wusste, dass JavaScript Single ist -Threaded von Anfang an, ich habe es schon lange gehört. Tatsächlich wird js auch als Messenger (wie das Sprichwort sagt) zwischen dem Server und dem Client verwendet. Das heißt, js hat auch seine Vorteile. Es kann nicht durch einen einzelnen Thread eingeschränkt werden. Als ich mir also weiterhin Videos ansah, stellte ich fest, dass in JavaScript tatsächlich auch Multithread-Vorgänge ausgeführt werden können. var worker1 = new Worker("worker1.js") verwendet die folgende Anweisung, um Implementieren Sie Multithread-Operationen. Wie der Name schon sagt, ähnelt Multithreading einem Chef, der mehrere Mitarbeiter zur Zusammenarbeit einlädt, was definitiv viel effizienter ist. Für einen Mitarbeiter, obwohl unser js möglicherweise ein leitender Mitarbeiter ist, der a Bei vielen Dingen ist er immer noch eine Person, insbesondere wenn er einige einfache Dinge erledigt. Ein einzelner Thread hat nur Nachteile, aber keine Vorteile (vielleicht zu absolut, subjektives Gefühl), insbesondere die von mir geschriebene Low-Level-Skriptsprache erfordert eine Multi-Thread-Ausführung Deshalb möchte ich Multithreads zum Crawlen von Daten verwenden, was den Zeitaufwand erheblich verkürzt. Ich muss nicht zusehen, wie sie ausgeführt werden. Deshalb habe ich begonnen, Webworker in NodeJS zu verwenden, um Multithread-Vorgänge zu implementieren. Im Folgenden sind die aufgeführt Umsetzungsschritte:

Verwenden Sie Webworker, um Multithreading in NodeJs zu implementieren:

Zuerst müssen wir Abhängigkeiten über den npm i Worker installieren, das heißt, das Modul in node_modules importieren und dann importieren

const Worker = require("worker"),我们就可以开始使用他了,

var worker1 = new Worker("worker1.js")

var worker2 = new Worker("worker2.js")

var worker3 = new Worker("worker3.js")

var worker4 = new Worker("worker4.js")

Hier habe ich 4 Threads erstellt, um mir beim Crawlen von Daten zu helfen, was der Einstellung von vier Mitarbeitern entspricht!

Ich habe die Daten, die gecrawlt werden mussten, in vier gleiche Teile aufgeteilt und sie an vier Mitarbeiter übergeben. Jeder von ihnen war für einen Teil verantwortlich. Als nächstes gibt es einen Punkt, der Aufmerksamkeit erfordert. Ich habe ihn in das entsprechende Skript geschrieben.

const {delay} = require("bluebird");

const Promise = require("bluebird");

const ms = require("ms");

Die folgenden Module werden vorgestellt. Bevor Sie sie definieren, müssen Sie sie separat über den Befehl npm i installieren. npm i +erfordert den Namen in Klammern.

Warum brauchen Sie dieses?

Da ich diese Warteverzögerung (ms("10s")) verwenden muss, muss dies in der asynchronen Methode geschrieben werden, andernfalls wird ein Fehler gemeldet. Dies kann so verstanden werden, dass ich jeden Thread einzeln ausführe und einen setze Verzögerung für sie. Dadurch kann eine hohe Parallelität vermieden werden (ich weiß nicht, ob das sinnvoll ist oder nicht), da das Programm beim Start direkt abgestürzt ist, ohne es festzulegen, also muss ich dies festlegen.

Schließlich werden die Skripte, die aufgerufen werden müssen, in Worker1 verwendet. Denken Sie daran, sie zu segmentieren. Zu beachten ist, dass Worker ein großes W ist.

Acho que você gosta

Origin blog.csdn.net/weixin_54515240/article/details/129047758
Recomendado
Clasificación