2017-09-25 5 views
0

Je comprends ce qu'est la mise à l'échelle et ce que le module de cluster js du nœud est censé faire en tirant parti des cœurs restants pour améliorer la simultanéité. Mais voici ma question: Si j'ai une certaine fonction à utiliser à 18h par jour, comment puis-je empêcher les 8 travailleurs d'exécuter la fonction 8 fois à 18 heures au lieu d'une fois?Node js module de grappe dilemme

+0

J'ai besoin d'un algorithme –

+0

si vous utilisez nodejs en mode cluster alors la requête sera envoyée à un seul processus de travail, il est géré par le worker principal. Je suggère de créer un travail cron au lieu du mode de cluster normal pour faire des travaux périodiques. –

+0

@ Aky_0788 son travail était cron en utilisant le planificateur de noeud –

Répondre

0

Vous pouvez définir un intervalle dans le processus maître et sélectionner un travail aléatoire pour effectuer le travail à chaque fois. Vous pouvez utiliser la fonction worker.send(message) pour informer le travailleur de la nouvelle tâche.

Une autre méthode consiste à préparer une méthode API exposée par votre application. Cette méthode déclenchera l'exécution de la tâche à la réception. Pour appeler cette méthode API, vous pouvez utiliser un cron standard. De cette façon, votre application sera au courant du travail effectué, mais pas du planning.