Module: BugBunny
- Extended by:
- Observability
- Defined in:
- lib/bug_bunny.rb,
lib/bug_bunny/otel.rb,
lib/bug_bunny/client.rb,
lib/bug_bunny/railtie.rb,
lib/bug_bunny/request.rb,
lib/bug_bunny/session.rb,
lib/bug_bunny/version.rb,
lib/bug_bunny/consumer.rb,
lib/bug_bunny/producer.rb,
lib/bug_bunny/resource.rb,
lib/bug_bunny/exception.rb,
lib/bug_bunny/controller.rb,
lib/bug_bunny/remote_error.rb,
lib/bug_bunny/configuration.rb,
lib/bug_bunny/observability.rb,
lib/bug_bunny/routing/route.rb,
lib/bug_bunny/middleware/base.rb,
lib/bug_bunny/middleware/stack.rb,
lib/bug_bunny/routing/route_set.rb,
lib/bug_bunny/consumer_middleware.rb,
lib/bug_bunny/middleware/raise_error.rb,
lib/bug_bunny/middleware/json_response.rb,
lib/generators/bug_bunny/install/install_generator.rb
Overview
lib/bug_bunny/middleware/stack.rb
Defined Under Namespace
Modules: ConsumerMiddleware, Generators, Middleware, OTel, Observability, Routing Classes: BadRequest, Client, ClientError, CommunicationError, Configuration, ConfigurationError, Conflict, Consumer, Controller, Error, InternalServerError, NotAcceptable, NotFound, Producer, PublishNacked, Railtie, RemoteError, Request, RequestTimeout, Resource, RoutingError, SecurityError, ServerError, Session, UnprocessableEntity
Constant Summary collapse
- VERSION =
'4.13.0'
Constants included from Observability
Class Attribute Summary collapse
-
.configuration ⇒ BugBunny::Configuration
La configuración global actual.
-
.global_connection ⇒ Bunny::Session?
La conexión global (Singleton) usada por procesos Rails.
-
.routes ⇒ BugBunny::Routing::RouteSet
El motor global de enrutamiento.
Class Method Summary collapse
-
.configure {|config| ... } ⇒ void
Configura la librería BugBunny.
-
.consumer_middlewares ⇒ BugBunny::ConsumerMiddleware::Stack
Atajo para ‘BugBunny.configuration.consumer_middlewares`.
-
.create_connection(**options) ⇒ Bunny::Session
Crea e inicia una nueva conexión a RabbitMQ utilizando la gema Bunny.
-
.disconnect ⇒ void
Cierra la conexión global si existe.
Methods included from Observability
Class Attribute Details
.configuration ⇒ BugBunny::Configuration
Returns La configuración global actual.
35 36 37 |
# File 'lib/bug_bunny.rb', line 35 def configuration @configuration end |
.global_connection ⇒ Bunny::Session?
Returns La conexión global (Singleton) usada por procesos Rails.
38 39 40 |
# File 'lib/bug_bunny.rb', line 38 def global_connection @global_connection end |
.routes ⇒ BugBunny::Routing::RouteSet
Returns El motor global de enrutamiento.
44 45 46 |
# File 'lib/bug_bunny.rb', line 44 def self.routes @routes ||= Routing::RouteSet.new end |
Class Method Details
.configure {|config| ... } ⇒ void
This method returns an undefined value.
Configura la librería BugBunny. Si no se ha configurado previamente, inicializa una nueva configuración por defecto.
59 60 61 62 63 |
# File 'lib/bug_bunny.rb', line 59 def self.configure self.configuration ||= Configuration.new yield(configuration) configuration.validate! end |
.consumer_middlewares ⇒ BugBunny::ConsumerMiddleware::Stack
Atajo para ‘BugBunny.configuration.consumer_middlewares`.
50 51 52 |
# File 'lib/bug_bunny.rb', line 50 def self.consumer_middlewares configuration.consumer_middlewares end |
.create_connection(**options) ⇒ Bunny::Session
Crea e inicia una nueva conexión a RabbitMQ utilizando la gema Bunny. Mezcla las opciones pasadas explícitamente con la configuración global por defecto.
84 85 86 87 88 89 90 91 92 |
# File 'lib/bug_bunny.rb', line 84 def self.create_connection(**) = () Bunny.new().tap do |conn| conn.after_recovery_completed do safe_log(:info, 'bug_bunny.connection_recovered', host: [:host]) end conn.start end end |
.disconnect ⇒ void
This method returns an undefined value.
Cierra la conexión global si existe.
Este método es utilizado principalmente por el Railtie para asegurar que los procesos hijos (forks) de servidores como Puma o Spring no hereden la conexión TCP del proceso padre, forzando una reconexión limpia (“Lazy”).
101 102 103 104 105 106 107 108 109 |
# File 'lib/bug_bunny.rb', line 101 def self.disconnect return unless @global_connection @global_connection.close if @global_connection.open? @global_connection = nil @logger = configuration.logger safe_log(:info, 'bug_bunny.disconnect') end |