¿Cómo forzar la concesión de todas las insignias desde la línea de comandos?

Los insignias se otorgan una vez al día.
¿Existe una forma de programar o forzar el proceso de otorgamiento “ahora mismo” desde la línea de comandos?

La forma más sencilla es visitar /sidekiq/scheduler y buscar trabajos que contengan la palabra “grant” en el nombre. Probablemente quieras Jobs::BadgeGrant, pero algunos insignias tienen sus propias tareas.

Revisé todas las tareas programadas en Sidekiq hasta 24 horas a partir de ahora, y ninguna contiene un token grant.

Oh… extraño. ¿Así que no ves una línea como esta?

¿Es un servidor de desarrollo o de producción?

Está en producción en forum.kozovod.com.
Correcto, no hay entradas como en tu captura de pantalla.

Acabo de notar que no se me han otorgado insignias desde hace mucho tiempo. Estoy reconstruyendo el contenedor ahora y verificaré si la tarea se programará después del reinicio.

Además, noté que una de mis insignias de custom-sql tenía un error; ¿podría eso detener el funcionamiento de todas las demás insignias?

En teoría, no.

Creo que lo más probable es que haya ocurrido un problema con una actualización de docker-manager, por lo que algunas tareas de Sidekiq no se cargaron correctamente. Ojalá que al reconstruirlo vuelva a funcionar.

Bien, la reconstrucción salió bien.

Sin embargo, unos minutos después de completarse, aún no puedo encontrar ningún token grant en las más de 125 tareas programadas. ¿Significa esto que algo falla en mi configuración?

Sí, probablemente. ¿Tienes algún error en /logs? ¿Alguno plugin inusual?

Hmm, nada crítico en los últimos ~20 minutos:

¿Puedes ver algo sospechoso que pueda interrumpir la ejecución o programación de las insignias?

No se ve nada obvio. Si entras a la consola y escribes Jobs::BadgeGrant, ¿qué sucede? Debería verse así:

[1] pry(main)> Jobs::BadgeGrant
=> Jobs::BadgeGrant

De acuerdo, aquí está:

Después de eso, no hay nuevos errores en /logs.

Tampoco hay nuevas entradas con el token grant en /sidekiq/scheduled.

¿Tienes algún plugin que pueda estar interfiriendo?

Aquí están los habilitados: intento usar solo los populares y compatibles:

          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-data-explorer.git
          - git clone https://github.com/discourse/discourse-staff-notes.git
          - git clone https://github.com/joebuhlig/discourse-feature-voting.git
          - git clone https://github.com/discourse/discourse-checklist.git
          - git clone https://github.com/discourse/discourse-cakeday.git
          - git clone https://github.com/discourse/discourse-saved-searches.git
          - git clone https://github.com/discourse/discourse-canned-replies.git
          - git clone https://github.com/discourse/discourse-assign.git
          - git clone https://github.com/discourse/discourse-bbcode.git
          - git clone https://github.com/angusmcleod/discourse-locations.git
          - git clone https://github.com/discourse/discourse-adplugin.git
          - git clone https://github.com/angusmcleod/discourse-custom-wizard.git

Solo verificando: ¿estás buscando en “Programadas” o en “Programador”? Los trabajos de insignias deberían estar bajo Programador.

(Aparte: ¡vaya, qué nombres tan confusos!)

Gracias.
Debajo de Programador, ahora puedo ver los siguientes:

  • Jobs::GrantNewUserOfTheMonthBadges
  • Jobs::GrantAnniversaryBadges
  • Jobs::BadgeGrant

Todos los trabajos del programador aparecen en la sección “Trabajos recurrentes”.

Ahora, ¿es seguro para mí hacer clic en el botón “Disparar” y ver qué sucede?

¡Ah, bien! Eso hace que esto sea mucho más sencillo de resolver.

Sí, el botón de activación es seguro :slight_smile:

Gracias, ya se está ejecutando.

La última vez tardó 10 000 segundos, así que volveré a revisar mañana por la mañana.

¿Hay alguna manera de procesar un distintivo en particular? ¿Quizás desde la línea de comandos?

¡10 mil segundos es mucho! En meta, tarda 500 segundos. ¿Quizás alguna de tus consultas de insignias personalizadas no es muy eficiente? (por eso desactivamos la función de SQL personalizado de forma predeterminada)

Gracias, revisé las consultas rápidamente y ajusté una un poco, y ahora solo tomó ~1k segundos. También publiqué mi pregunta sobre optimización SQL en un tema separado.

Volviendo a las insignias: ahora funciona y todas las insignias han sido otorgadas. Gracias por tu ayuda y tus respuestas rápidas.