web-dev-qa-db-fra.com

Équivalent du céleri dans le noeud JS

Veuillez suggérer un équivalent de Celery dans le noeud JS pour exécuter des tâches asynchrones. J'ai pu rechercher les éléments suivants:

  1. ( Plus tard )
  2. Kue ( Kue ),
  3. coffee-resque ( coffee-resque )
  4. cron ( cron )
  5. noeud-céleri ( noeud céleri )

J'ai exécuté des threads manuels et automatisés en arrière-plan et interagis avec MongoDB.

node-celery utilise redis DB et non Mongo DB. Y at-il un moyen de changer cela? Quand j'ai installé node-celery redis a été installé en tant que dépendance.

Je suis nouveau au céleri, s'il vous plaît guide.Merci.

15
garima

Le céleri est fondamentalement un client RabbitMQ. Il existe des producteurs (tâches), des consommateurs (ouvriers) et le courtier de messages AMQP qui transmet les messages entre les tâches et les ouvriers.

Sachant que cela vous permettra de écrivez votre propre céleri dans node.js .

enter image description here

node-celery est une bibliothèque qui permet à votre processus de nœud de fonctionner à la fois en tant que client céleri (Producer/Publisher) et en tant que travailleur de céleri (consommateur) .

Voir https://abhishek-tiwari.com/post/amqp-rabbitmq-and-celery-a-visual-guide-for-dummies

12
Vanuan

Optez pour Kue , c'est une solution holistique qui ressemble au céleri en Python Word; il a les concepts de: producteurs/consommateurs, tâches différées, nouvelle phase de tâches, durée de vie des tâches, possibilité d'effectuer une rotation des tâches entre plusieurs consommateurs écoutant la même file d'attente, etc.

Celery est probablement plus avancé avec plus de fonctionnalités avec plus de courtiers à gérer et vous pouvez utiliser node-celery si vous voulez, mais, à mon avis, je pense qu'il n'est pas nécessaire de rechercher une solution hybride nécessitant l'installation de python et noeud lorsque vous ne pouvez utiliser qu'un langage suffisant dans 90% des cas (sauf si nécessaire, bien sûr).

––––––––––––––––––––––––––––––––––––––

Edit-1/2018

Ma recommandation est de ne pas utiliser Kue maintenant, car il semble que ce soit un projet bloqué, utilisez plutôt le céleri. Il est très bien pris en charge et maintenu par la communauté et prend en charge un grand nombre de cas d'utilisation.

6
securecurve

Optez pour Kue, c'est une solution holistique qui ressemble au céleri en Python Word; il a les concepts de: producteurs/consommateurs, tâches différées, nouvelle phase de tâches, durée de vie des tâches, possibilité d'effectuer une rotation des tâches entre plusieurs consommateurs écoutant la même file d'attente, etc.

Kue , après tant de temps, a toujours les mêmes vieux problèmes non résolus:

  • github.com/Automattic/kue/issues/514
  • github.com/Automattic/kue/issues/130 
  • github.com/Automattic/kue/issues/53

Si quelqu'un qui lit ceci ne veut pas réécrire Kue, ne commencez pas par ça. C'est bon pour les tâches simples. Mais si vous souhaitez en gérer beaucoup, des chaînes simultanées ou simultanées (lorsqu'une tâche en crée une autre) - arrêtez de perdre votre temps .

J'ai perdu un mois à essayer de déboguer Kue et toujours sans succès. Le meilleur choix était de changer Kue pour les files d'attente Pubs/Sub Messaging sur RabbitMQ et Rabbot (une autre conclusion de RabbitMQ).

Personnellement, je n’ai pas autant utilisé le céleri pour y mettre de l’ensemble, mais comme je cherchais une alternative au céleri et que je découvrais comment quelqu'un conseille Kue, je viens de faire bouillir mon sang dans les veines. 

Si vous souhaitez envoyer un courrier électronique différé ( comme dans l'exemple de Kue ), vous pouvez choisir ce que vous voulez sans vous soucier des erreurs. Mais si vous voulez une file d'attente de messages/tâches système fiable, ne commencez même pas par Kue. Personnellement, j'irais avec 5. céleri-nœud (céleri)

4
Darvydas Šilkus

D'après notre expérience, Kue n'était pas fiable et perdait des emplois. Certes, nous utilisions une version plus ancienne, elle a probablement été corrigée depuis. C'était également pendant la période où TJ avait abandonné le projet et les nouveaux responsables n'avaient pas été choisis. Nous sommes passés à beanstalkd et avons été très heureux. Nous utilisons https://github.com/ceejbot/fivebeans comme interface de noeud pour beanstalkd.

1
Bryan Larsen