Resque Gem: Para procesos en segundo plano en ROR

¿Elegante y divertido? Estas frases no son algo que asociarías con un lenguaje de programación. ¿Bien? Pero esto es exactamente lo que es Ruby on Rails. Ruby on Rails, más comúnmente llamado simplemente Rails, es un lenguaje de programación puramente orientado a objetos con una sintaxis limpia, simple y fácil de usar. Y al decir simple y fácil de usar, significa que puede tener lista una aplicación web mucho antes que con cualquier otro lenguaje de programación. Para comenzar, todo lo que necesita es un servidor web y una base de datos. Y por supuesto, ¡algunas joyas! Una de las mejores partes de Ruby es la enorme lista de códigos reutilizables y categorizados, adecuadamente denominados "gemas". La belleza de Ruby on Rails radica en el hecho de que con la ayuda de estas gemas, puedes crear aplicaciones fácilmente y con un esfuerzo considerablemente menor en comparación con otras tecnologías. Continúe leyendo para conocer Rasque, que es una joya para crear trabajos en segundo plano. Resque crea trabajos en segundo plano usando Redis. Dado que admite varias colas, podemos colocarlas en varias colas y procesarlas más tarde también. Y viene con una interfaz de administración para monitorear y gestionar las colas. Resque está destinado a usarse en situaciones donde se requiere un gran volumen de entradas de trabajo y proporciona mecanismos para garantizar la reflexión y la coherencia del comportamiento al tiempo que proporciona estadísticas mediante un panel web. Cuando tenemos un bloque de código de procesamiento largo que no necesitamos ejecutar dentro del ciclo de solicitud de nuestra aplicación web, un sistema de cola de procesamiento en segundo plano es la única buena solución. Por lo tanto, obtenemos una aplicación Ruby con un rendimiento más rápido. Aunque Resque está inspirado en gran medida en DelayedJob, si necesitamos varias colas en nuestra aplicación, Resque probablemente sea una mejor opción. Elija Resque si:
  • Necesitas varias colas
  • No te gustan especialmente las prioridades numéricas.
  • Trabajas con colas enormes.
  • Trabajas con Redis
  • No te quedarás sin RAM
Dado que hay varios sistemas de colas de código abierto disponibles (delayed_job, beanstalk), ¡no necesitamos escribir el nuestro! Aquí se explicará cómo configurar el sistema de colas de respuesta en una aplicación Ruby on Rails. Configuración de solicitud:
bash: brew install redis redis-server /usr/local/etc/redis.conf resque-web rake resque:work QUEUE='*'
Archivo de gemas:
gem 'resque', :require => “resque/server” Instale la nueva gema: instalación del paquete Cree un archivo de configuración de redis llamado redis.yml en configuración: valores predeterminados: &defaults host: localhost puerto: 3002 desarrollo: <<: *defaults test : <<: *predeterminado puesta en escena: <<: *predeterminado producción: <<: *predeterminado
Agregue un archivo inicializador llamado resque.rb en config/initializers:
Dir[File.join(Rails.root, 'aplicación', 'trabajos', '*.rb')].cada { |archivo| requiere archivo } config = YAML::load(File.open(“#{Rails.root}/config/redis.yml”))[Rails.env] Resque.redis = Redis.new(:host => config[' host'], :puerto => config['puerto'])
Agregue resque.rake a lib/tasks:
requiere la tarea 'resque/tareas' “resque:setup” => :entorno
Ejecución de rescate:
iniciar redis: redis-server iniciar resque COUNT=5 QUEUE=* rake resque:los trabajadores ven la interfaz de usuario web: resque-web
Cómo agregar trabajos de Resque:
Cree una clase de trabajo: class FeedsCollectionJob @queue = :feeds_collection_job def self.perform(start_date, end_date) pone “de #{start_date} a #{end_date}” #TODO su proceso de larga ejecución aquí termina fin
Ejecútelo usando: Resque.enqueue(FeedsCollectionJob, start_date, end_date) Este comando no se bloqueará, por lo que puede incrustar este código en un modelo. Trabajadores: Se puede distribuir entre varias máquinas, admite las prioridades principales, es resistente a las "pérdidas" de memoria y está optimizado.
Los trabajadores de Resque son tareas de rastrillo que duran para siempre. iniciar bucle hacer si trabajo = reservar trabajo.proceso de lo contrario dormir 5 # frecuencia = 5 finalizar finalizar apagado
Para iniciar un trabajador:
$ QUEUE=resque rake file_serve:trabajo
Necesitaremos cargar nuestra aplicación en la memoria. Una vez instalado el complemento Resque as Rails, podemos ejecutar este comando desde nuestro RAILS_ROOT:
$ QUEUE=resque del entorno rake file_serve:trabajo
Por lo tanto, carga el entorno y ahora puede iniciar un trabajador. Aparte de esto, podemos escribir una tarea resque:setup que dependa de la tarea rake del entorno:
tarea “resque:configuración” => :entorno
Introspección: Debería haber varias formas de introspeccionar el comportamiento de Resque. Recomendaría el mejor lugar para hacer esto, el panel web integrado de Resque. http://localhost:3000/resque Aquí, permitiríamos inspeccionar colas, trabajadores, trabajos actuales, trabajos fallidos y seguimientos de pila, y estadísticas útiles de Redis. Podemos hacer lo mismo usando la consola;
Resque.info Resque.queues Resque.redis Resque.size(nombre_cola) Resque.peek(nombre_cola, inicio=1, recuento=1) Resque.workers Resque.working
¡Bueno, ahí lo tienes! Este artículo espera servir sobre resque, cómo configurarlo y cómo esta joya es beneficiosa para ayudarlo a crear una aplicación Ruby con un rendimiento más rápido. ¿Tiene una gran idea para una aplicación y desea desarrollarla lo más rápido posible? Elija Ruby on Rails y, mientras lo hace, sepa que RailsCarma es una excelente opción para el desarrollo de su aplicación. Railscarma ha estado implementando Ruby on Rails desde sus etapas iniciales para el desarrollo, la capacitación, la implementación y la contribución a la comunidad Rails y brindando Los mejores servicios de desarrollo de Ruby on Rails.. RailsCarma proporciona servicios Ruby on Rails de extremo a extremo que incluyen consultoría, arquitectura, construcción, gestión y extensión a empresas de todo el mundo. También puedes contratar desarrolladores de Ruby on Rails con un proceso de contratación sencillo. Contáctenos para saber mas. Leer más artículos similares:

Suscríbete para recibir las últimas actualizaciones

Artículos Relacionados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

es_ESSpanish