Como forçar a concessão de todos os emblemas via linha de comando?

As insígnias são concedidas uma vez por dia.
Existe uma maneira de agendar ou forçar o processo de concessão “agora mesmo” pela linha de comando?

A maneira mais fácil é acessar /sidekiq/scheduler e procurar por quaisquer jobs com a palavra “grant” no nome. Provavelmente você quer Jobs::BadgeGrant, mas alguns badges têm suas próprias tarefas.

Revisei todas as tarefas agendadas no Sidekiq até 24 horas a partir de agora, e nenhuma delas contém o token grant.

Oh… estranho. Então você não vê uma linha como esta?

Isso é um servidor de desenvolvimento ou de produção?

Está em produção no forum.kozovod.com.
Correto, não há entradas como na sua captura de tela.

Acabei de notar que não recebi emblemas há muito tempo. Estou recriando o container agora e verificarei se a tarefa será agendada após a reinicialização.

Além disso, notei que um dos meus emblemas custom-sql apresentou um erro — isso poderia impedir que todos os outros emblemas funcionassem?

Em teoria, não.

Acho que o mais provável é que tenha ocorrido um erro em uma atualização do docker-manager, fazendo com que algumas tarefas do sidekiq falhassem ao carregar. Esperemos que, após você reconstruir, tudo funcione.

Certo, a reconstrução ocorreu sem problemas.

No entanto, alguns minutos após a conclusão, ainda não consigo encontrar nenhum token grant em nenhuma das mais de 125 tarefas agendadas. Isso significa que algo está falhando na minha configuração?

Sim, provavelmente. Você tem algum erro em /logs? Algum plugin incomum?

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

Consegue ver algo suspeito que possa quebrar a execução ou o agendamento dos badges?

Não vejo nada óbvio. Se você entrar no console e digitar Jobs::BadgeGrant, o que acontece? Deve aparecer algo assim:

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

Ok, aqui está:

Depois disso, não houve novos erros em /logs.

Também não há novas entradas com o token grant em /sidekiq/scheduled.

Você tem algum plugin que possa estar interferindo?

Aqui estão os ativados — tento usar apenas os populares e suportados:

          - 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

Só confirmando: você está procurando em “Agendado” ou em “Agendador”? Os trabalhos de badge devem estar em Agendador.

(De lado: uau, que nomeação confusa!)

Obrigado.
Abaixo de Agendador, agora posso ver os seguintes:

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

Todos os trabalhos do Agendador aparecem na seção “Trabalhos Recorrentes”.

Agora, é seguro para mim clicar no botão “Disparar” e ver o que acontece?

Ah, bom – isso torna a solução muito mais simples!

Sim, o botão de acionamento é seguro :slight_smile:

Obrigado, está rodando agora.

Na última vez, levou 10 mil segundos, então vou verificar novamente amanhã de manhã.

Existe alguma maneira de processar um emblema específico? Talvez pela linha de comando?

10 mil segundos é muito! No meta, leva 500 segundos. Talvez uma das suas consultas de medalhas personalizadas não seja muito eficiente? (é por isso que desativamos a funcionalidade SQL personalizada por padrão)

Obrigado! Revisei as consultas rapidamente, fiz um pequeno ajuste e agora o processo leva apenas ~1k segundos. Também publiquei minha pergunta sobre otimização SQL em um tópico separado.

Voltando às medalhas - agora funcionou e todas as medalhas foram concedidas. Obrigado pela sua ajuda e pelas respostas rápidas.