No uses los cron jobs de NestJS sin ver esto! | Tutorial NestJS

แชร์
ฝัง
  • เผยแพร่เมื่อ 11 ต.ค. 2024

ความคิดเห็น • 47

  • @xjezzuuuu
    @xjezzuuuu 9 หลายเดือนก่อน +10

    muy buen video, me encantaría puedas crear tu propia librería, así explicarías bien cómo crear una librería de 0 usando otras librerías como dependencia y aparte así se entiende como es crear una librería para nestjs, con su módulo, decorator, etc correspondiente. Sería un videazo

    • @AlbertHernandez
      @AlbertHernandez  9 หลายเดือนก่อน +4

      Hehe yo estaba pensando lo mismo :D

  • @ronaldrenteria
    @ronaldrenteria 9 หลายเดือนก่อน +2

    Genial, no solo aprender a crear esta librería entre nestJS y Bull, si no tambien apredner a crear nuestras propias librerías con dependencia.

  • @helmervillarreal6209
    @helmervillarreal6209 4 หลายเดือนก่อน +1

    Sería interesante hacer la libreria. 💪

  • @raubelguerra9749
    @raubelguerra9749 9 หลายเดือนก่อน

    buen video, ya los usaba pero al tener siempre una instancia no sabía que me iba a topar con este problema. Gracias, gracias, gracias

    • @AlbertHernandez
      @AlbertHernandez  9 หลายเดือนก่อน

      Gracias! Me alegra ver que esto también os es útil, un saludo!

  • @juanestebancalderon6520
    @juanestebancalderon6520 9 หลายเดือนก่อน

    Albert! Como siempre por aquí, aún no he visto y ya se que será un videazo, gracias por aportar a la bonita comunidad de Nest, eres un grande!
    Además el tema de los cron jobs me cae como anillo al dedo 😂

    • @AlbertHernandez
      @AlbertHernandez  9 หลายเดือนก่อน

      Haha ya me dirás cuanto te lo acabes que te pareció. Yo también estuve hace poco con cron jobs y dije va voy a traer esto que seguro que le es util a mas personas :D

  • @eribertmarquez452
    @eribertmarquez452 9 หลายเดือนก่อน +1

    Sería genial hacer la librería de nestjs bulll cron y Me gustaría mucho ver más temas de ci/cd y github actions para deployments automatizados de nestjs

    • @AlbertHernandez
      @AlbertHernandez  9 หลายเดือนก่อน +2

      Venga pues habrá que hacerla, aunque sea como mínimo una librería super pequeña pero que tenga todo el CI/CD con GitHub Actions :)

  • @ernestodizx
    @ernestodizx 7 หลายเดือนก่อน

    Muy buen video, yo me tope con el mismo problema que mencionas
    Como lo solucione fue creado lambdas en AWS que se ejecutaban como cronjobs

    • @AlbertHernandez
      @AlbertHernandez  7 หลายเดือนก่อน

      Las lambdas de AWS son perfectas para estos casos

  • @johanvargasaranda444
    @johanvargasaranda444 9 หลายเดือนก่อน +1

    Sería interesante ver en un futuro como hacer microservicios con nestjs y algún transportador como kafka o redis

    • @AlbertHernandez
      @AlbertHernandez  9 หลายเดือนก่อน +1

      El mundo de los microservicios es muy interesante, me lo apunto y traeremos contenido en un futuro, gracias por la sugerencia, un saludo!

    • @raubelguerra9749
      @raubelguerra9749 9 หลายเดือนก่อน

      @@AlbertHernandez tienes un potencial segmento de audiencia y son los que queremos ver info de microservicios con nestjs, es un tema muy poco tratado y los que lo exponen solo hacen el ejemplo básico de la documentación. Esto debe complementarse con dokerizar esos servicios, balanceo de carga cuando hay más de una instancia de un mismo servicio, motorización de estos, da para una serie completa. En fin, tienes un 2024 lleno de posibilidades por delante.

    • @AlbertHernandez
      @AlbertHernandez  9 หลายเดือนก่อน

      Si, veo que en el tema de los microservicios siempre hay interés pero la verdad que aun no se si me siento del todo preparado para traeros buen material de calidad al respecto, aun tengo mucho que leer y que seguir aprendiendo al respecto pero conforme lo vaya haciendo os traeré todo lo que pueda

  • @santiagobotina6839
    @santiagobotina6839 9 หลายเดือนก่อน +1

    Bro me encanta como se ve tu intelliJ, podrías compartir como configurarlo como el tuyo?(tema, fuente de texto, iconos, etc...) No he encontrado muchos recursos que se vean tan bien como el tuyo, saludos!

    • @AlbertHernandez
      @AlbertHernandez  9 หลายเดือนก่อน +2

      Hehe si claro, me lo apunto y traeré un video sobre todo ello. Un saludo! 😁

  • @Parraletzito
    @Parraletzito 6 หลายเดือนก่อน

    Pues soluciones hay varias..]
    En el caso de kubernetes, porque no usar mejor la solucion de kubernetes de cronjobs, en caso de que no uses kubernetes pero si AWS, puedes usar AWS Batch
    Creo que lo importante es separa esa responsabilidad del servicio, y que el servicio solo ejecute la accion que se requiere y que un algo (sea k8s, Batch, o crontab) ejecute la tarea...
    Saludos, grandes videos!!!

    • @AlbertHernandez
      @AlbertHernandez  6 หลายเดือนก่อน +1

      De las últimas que estoy usando es justo la de crear un cron job de k8s que lance un evento a una cola, de esa manera lo delego todo esto a la infra y puedo tener retries y más cosas, gracias por el aporte :D

    • @Parraletzito
      @Parraletzito 6 หลายเดือนก่อน

      ​@@AlbertHernandez si justo , incluso puedes hasta usar istio para manejar los reintentos jeej.. como dices en tu video dude, hay un monton de formas de solucionar las cosas, la creatividad no tiene limites!!!
      Yo vengo mas de lado de platform engineering, y tus videos me han ayudado un monton a entender a los SWE :D

    • @AlbertHernandez
      @AlbertHernandez  6 หลายเดือนก่อน

      Si, hay muchas maneras, en los casos donde se tiene un equipo de platform engineering lo mejor es siempre preguntar a este equipo cual es el estándar ya que hay muchas piezas que se pueden usar para solucionar esto y dependerá de las soluciones que tenga el equipo.
      Me alegra saber que te han ayudado los videos a entender a los SWE, es muy importante que tanto miembros de platform engineer como los SWE se entiendan unos a otros y asi puedan trabajar juntos en resolver los problemas, es una pieza fundamental, un saludo!

    • @abdelkarinhadad7942
      @abdelkarinhadad7942 2 หลายเดือนก่อน

      @@AlbertHernandez no veo el video 👀

  • @andreiflorianbratila6916
    @andreiflorianbratila6916 8 หลายเดือนก่อน

    Muy buenos videos Albert, sigue asi

  • @blackdeath166
    @blackdeath166 9 หลายเดือนก่อน

    Buen video, seria interesante lo de crear la libreria, tambien seria interesante, la integracion de graphql creo que hay pocos que hablan de graphql, tambien la generacion de reportes, manejo archivos, subscriptions de graphql, buen la verdad es que hay muchas cosas

    • @AlbertHernandez
      @AlbertHernandez  9 หลายเดือนก่อน

      Gracias 😁! Venga tomo nota para traer contenido de GraphQL como comentas. Gracias por la sugerencia!

  • @gposoft
    @gposoft 8 หลายเดือนก่อน

    yo podria un proxy o gateway (con node y express) que rutee , seria dos bakend como mencionaste un que gestionara solo cosas de cron y por ejemplo los post que mencionas que esos son los que se replicarian y se usaria el nativo de nestjs

    • @AlbertHernandez
      @AlbertHernandez  8 หลายเดือนก่อน

      Puede ser otra solución si, tener uno único para los crons, lo que pasa que si ese cron solo se va a ejecutar por ejemplo una vez al día, tener un servicio 24/7 por un único cron... quizás es demasiado

  • @andersonalmeydat7715
    @andersonalmeydat7715 9 หลายเดือนก่อน

    buen video bro, tendras algun curso de microservicios de nestjs con monorepo?

    • @AlbertHernandez
      @AlbertHernandez  9 หลายเดือนก่อน

      Gracias! Pues por ahora un curso entero no estoy sacando sino mas bien videos sueltos sobre tema que puedan ser interesantes, tengo pensado también hacer algunos de monorepos con NestJS y con otras herramientas como Lerna, pero si veo que hay interés podemos plantear un curso entero de todo eso

  • @jesusantoniobojorquezespin9260
    @jesusantoniobojorquezespin9260 9 หลายเดือนก่อน

    gran video, se nota que sabes mucho

    • @jesusantoniobojorquezespin9260
      @jesusantoniobojorquezespin9260 9 หลายเดือนก่อน

      Otra cosa, yo trabajo con spring boot en java y en mi empresa tenemos ese problema, para solucionarlo hicimos que en las variables de entorno de cada pot le indicamos cual va a ser el encargado de realizar en cron job asi

    • @AlbertHernandez
      @AlbertHernandez  9 หลายเดือนก่อน +1

      Oye pues... es una solución muy buena, es una manera de tirar por lo nativo del framework sin estar lidiando con los problemas de que se repita el cron en múltiples instancias y encima sin la necesidad de meter nuevos componentes en el sistema, solo esa logica que meta una variable a un unico pod y listo.
      Me ha gustado, esta me la apunto tambien hehe, gracias por la sugerencia!

  • @josealfa04
    @josealfa04 9 หลายเดือนก่อน

    Yo tuve un cron con una aplicación con express y tenia el mismo problema la solución que dio arquitectura fue migrar la lógica del cron a una función que se levantaba en los jobs de kubernetes!!

    • @AlbertHernandez
      @AlbertHernandez  9 หลายเดือนก่อน +1

      Esa también es buena! Yo hace tiempo hice algo parecido, pero en lugar de tener la lógica del cron en los jobs de Kubernetes, lo que hacía es que ese cron llamara por HTTP a mi servicio, y de esa manera luego yo ya podía tener todo el control desde mi aplicación. Esto lo hacía sobre todo para poder reusar los componentes que ya tenía desarrollados en mi aplicación y no tener que replicarlos en k8s

  • @BrayanGomez-h6n
    @BrayanGomez-h6n 7 หลายเดือนก่อน

    puedes utilizar un "lock" o "leader election" para asegurarse de que solo una instancia de tu aplicación ejecute el cron job.

    • @AlbertHernandez
      @AlbertHernandez  7 หลายเดือนก่อน +1

      puede ser otra solución si, aunque es una pena que no venga nada nativo o mas sencillo en el framework de NestJS

  • @jaimealvarez3968
    @jaimealvarez3968 9 หลายเดือนก่อน

    Otra forma aunque igual algo engorrosa es guardar el estado de disparo del cron en la db, así cualquier cron consultaría cuando se disparó el último y solo se ejecutaría uno, aunque esté el cron replicado en varias instancias de nestjs, saludos.

    • @AlbertHernandez
      @AlbertHernandez  9 หลายเดือนก่อน +1

      Si, eso es prácticamente lo que hace Bull, lo guarda en un redis y va consultando cuando hay que ejecutar el handle del job según la hora, en este caso me gusta mas la opción de Bull mas que nada porque no tenemos que gestionar nosotros mismos esta DB y hacer la lógica de ir consultando los crons, marcar que ya se ha ejecutado y demás

  • @indarkerimota66
    @indarkerimota66 9 หลายเดือนก่อน

    Yo uso agenda-nest que usa agendajs, para mi la mejor lib de CJ

    • @AlbertHernandez
      @AlbertHernandez  9 หลายเดือนก่อน

      Esa también es muy buena, sobretodo si ya estas usando mongo como base de datos