I badge vengono assegnati una volta al giorno.
Esiste un modo per pianificare o forzare il processo di assegnazione “ora” da riga di comando?
Il modo più semplice è visitare /sidekiq/scheduler e cercare eventuali lavori con la parola “grant” nel nome. Probabilmente ti servirà Jobs::BadgeGrant, ma alcuni badge hanno i propri task.
Ho esaminato tutti i task pianificati in Sidekiq fino a 24 ore da ora, e nessuno di essi contiene un token grant.
È in produzione su forum.kozovod.com.
Corretto, non ci sono voci come nello screenshot che hai inviato.
Ho appena notato che non mi sono stati assegnati badge da molto tempo. Sto ricostruendo il contenitore e controllerò se l’attività verrà pianificata dopo il riavvio.
Inoltre, ho notato che uno dei miei badge personalizzati SQL presentava un errore: potrebbe aver bloccato il funzionamento di tutti gli altri badge?
In teoria, no.
Penso che la causa più probabile sia un aggiornamento di docker-manager andato storto, con conseguente mancato caricamento di alcuni job di sidekiq. Speriamo che, una volta ricostruito, tutto funzioni correttamente.
Ok, la ricompilazione è andata bene.
Tuttavia, pochi minuti dopo il completamento, non riesco ancora a trovare alcun token grant in nessuno dei 125+ task pianificati. Significa che c’è un problema con la mia configurazione?
Sì, probabilmente. Ci sono errori in /logs? Qualsiasi plugin insolito?
Non si vede nulla di evidente. Se apri una console e digiti Jobs::BadgeGrant, cosa succede? Dovrebbe apparire così:
[1] pry(main)> Jobs::BadgeGrant
=> Jobs::BadgeGrant
Hai installato qualche plugin che potrebbe causare conflitti?
Ecco quelli abilitati - cerco di utilizzare solo quelli popolari e supportati:
- 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
Grazie.
Sotto Scheduler, ora posso vedere le seguenti voci:
- Jobs::GrantNewUserOfTheMonthBadges
- Jobs::GrantAnniversaryBadges
- Jobs::BadgeGrant
Tutti i lavori di Scheduler appaiono nella sezione “Lavori ricorrenti”.
Ora, è sicuro per me cliccare sul pulsante “Attiva” e vedere cosa succede?
Ah, bene: questo rende la soluzione molto più semplice!
Sì, il pulsante di attivazione è sicuro ![]()
Grazie, è in esecuzione.
L’ultima volta ci sono voluti 10.000 secondi, quindi ricontrollerò domani mattina.
C’è un modo per elaborare un badge specifico? Forse da riga di comando?
10k secondi sono tanti! Su meta, ne occorrono 500. Forse una delle tue query per i badge personalizzati non è molto efficiente? (per questo motivo disabilitiamo di default la funzionalità SQL personalizzata)
Grazie, ho revisionato rapidamente le query e ne ho corretto una leggermente, riducendo il tempo a circa 1k secondi. Ho anche ripubblicato la mia domanda sull’ottimizzazione SQL in un argomento separato.
Tornando ai badge: ora funziona e tutti i badge sono stati assegnati. Grazie per il tuo aiuto e per le risposte rapide.



