Les badges sont attribués une fois par jour.
Existe-t-il un moyen de planifier ou de forcer le processus d’attribution « immédiatement » depuis la ligne de commande ?
Le moyen le plus simple est de visiter /sidekiq/scheduler et de rechercher tous les travaux contenant le mot « grant » dans leur nom. Vous voudrez probablement Jobs::BadgeGrant, mais certains badges ont leurs propres tâches.
J’ai parcouru toutes les tâches planifiées dans Sidekiq jusqu’à 24 heures à partir de maintenant, et aucune ne contient de jeton grant.
C’est en production sur forum.kozovod.com.
Exactement, aucune entrée comme sur votre capture d’écran.
Je viens de remarquer que je n’avais reçu aucun badge depuis longtemps. Je reconstruis le conteneur maintenant et je vérifierai si la tâche sera planifiée après le redémarrage.
De plus, j’ai remarqué que l’un de mes badges custom-sql présentait une erreur : cela pourrait-il empêcher tous les autres badges de fonctionner ?
En théorie, non.
Je pense que la cause la plus probable est un problème lors d’une mise à jour du gestionnaire Docker, ce qui a entraîné l’échec du chargement de certains jobs Sidekiq. Une fois que vous aurez reconstruit le système, tout devrait fonctionner normalement.
Bon, la reconstruction s’est bien passée.
Cependant, quelques minutes après son achèvement, je ne trouve toujours aucun jeton grant dans les 125+ tâches planifiées. Est-ce que cela signifie qu’il y a un problème avec ma configuration ?
Oui, probablement. Y a-t-il des erreurs dans /logs ? Des plugins inhabituels ?
Je ne vois rien d’évident. Si vous ouvrez une console et tapez Jobs::BadgeGrant, que se passe-t-il ? Cela devrait ressembler à ceci :
[1] pry(main)> Jobs::BadgeGrant
=> Jobs::BadgeGrant
Avez-vous des plugins qui pourraient interférer ?
Voici ceux qui sont activés — j’essaie d’utiliser uniquement les plus populaires et pris en charge :
- 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
Merci.
Sous Planificateur, je peux maintenant voir les éléments suivants :
- Jobs::GrantNewUserOfTheMonthBadges
- Jobs::GrantAnniversaryBadges
- Jobs::BadgeGrant
Tous les travaux du planificateur apparaissent dans la section « Travaux récurrents ».
Maintenant, est-il sûr pour moi de cliquer sur le bouton « Déclencher » et de voir ce qui se passe ?
Ah, bien – cela rend la résolution beaucoup plus simple !
Oui, le bouton de déclenchement est sûr ![]()
Merci, ça tourne maintenant.
La dernière fois, cela a pris 10 000 secondes, donc je reviendrai demain matin.
Existe-t-il un moyen de traiter un badge en particulier ? Peut-être depuis la ligne de commande ?
10 000 secondes, c’est beaucoup ! Sur meta, cela prend 500 secondes. Peut-être que l’une de vos requêtes de badges personnalisés n’est pas très efficace ? (c’est pourquoi nous désactivons par défaut la fonctionnalité SQL personnalisée)
Merci, j’ai examiné rapidement les requêtes et en ai corrigé une légèrement, ce qui n’a pris que ~1k secondes maintenant. J’ai également reposté ma question sur l’optimisation SQL dans un sujet séparé.
Revenons aux badges : cela fonctionne maintenant et tous les badges ont été attribués. Merci pour votre aide et vos réponses rapides.



