# Realizando ediciones en la configuración de inicialización

**URL:** https://meta.discourse.org/t/making-edits-to-the-sidekiq-initialising-config/377339
**Category:** Development
**Created:** [5 Agosto, 2025 10:40 UTC](https://meta.discourse.org/t/making-edits-to-the-sidekiq-initialising-config/377339 "2025-08-05T10:40:12Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [5 Agosto, 2025 10:40 UTC](https://meta.discourse.org/t/making-edits-to-the-sidekiq-initialising-config/377339/1 "2025-08-05T10:40:12Z")

</div>

> [@Introducing pre-compiled JS assets for self-hosters](https://meta.discourse.org/t/introducing-pre-compiled-js-assets-for-self-hosters/376700/6?u=merefield):
>
> It’s enabled by default. You only need to specify the config if you want to opt-out. Yeah exactly. Any kind of diff in the git repo will cause it to bail out. Re. the sidekiq thing, if you open a topic about it, I’m sure we can work out a way to do it either from a plugin, or maybe we could introduce a new GlobalSetting for it.

Como se discutió, estoy intentando aprovechar esto, pero he encontrado un obstáculo, porque estoy personalizando:

`/config/initializers/100-sidekiq.rb`

Aquí está mi código alterado, estoy:

- Dando a cada trabajo un atributo de recuento de reintentos accesible que estoy usando en un plugin para cambiar la lógica del flujo de trabajo dependiendo de la cantidad de veces que se ha reintentado un trabajo.

En el archivo que estoy modificando, lo estoy modificando para:

- Crear una clase Middleware personalizada para recuperar el valor.
- Añadir la clase a la cadena para que se incluya.

```plaintext
require "sidekiq/pausable"
require "sidekiq/discourse_event"
require "sidekiq_logster_reporter"
require "sidekiq_long_running_job_logger"
require "mini_scheduler_long_running_job_logger"

 module Sidekiq::Middleware::Server # <-- NUEVO
   class SetRetryCountMiddleware
     def call(worker, job, queue)
       worker.retry_count = job["retry_count"] if worker.respond_to?(:retry_count=)
       yield
     end
   end
 end

Sidekiq.configure_client { |config| config.redis = Discourse.sidekiq_redis_config }

Sidekiq.configure_server do |config|
  config.redis = Discourse.sidekiq_redis_config
  config[:skip_default_job_logging] = false

  config.server_middleware do |chain|
    chain.add Sidekiq::Pausable
    chain.add Sidekiq::Middleware::Server::SetRetryCountMiddleware # <-- NUEVO
    chain.add Sidekiq::DiscourseEvent
  end

```

Actualmente lo estoy logrando con un script de edición de archivos en `app.yml` usando `sed`.

Esto rompe la higiene del repositorio, por lo que no puedo usar los activos compilados incluidos.

¿Alguna sugerencia sobre cómo hacer estas modificaciones desde un plugin?

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [5 Agosto, 2025 15:14 UTC](https://meta.discourse.org/t/making-edits-to-the-sidekiq-initialising-config/377339/2 "2025-08-05T15:14:58Z")

</div>

¿Importa la posición específica en la pila? Probé esto en un plugin.rb y pareció agregar el middleware 🤞

```ruby
class BreakEverythingMiddleware
  def call(worker, job, queue)
    puts "¡El middleware funcionó!"
    raise "¡EL MIDDLEWARE FUNCIONÓ!"
  end
end

Sidekiq.default_configuration.server_middleware { |chain| chain.add BreakEverythingMiddleware }

```

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [5 Agosto, 2025 15:26 UTC](https://meta.discourse.org/t/making-edits-to-the-sidekiq-initialising-config/377339/3 "2025-08-05T15:26:43Z")

</div>

¡No debería!

¡Gran sugerencia, voy a probar eso!
