Значки выдаются один раз в день.
Существует ли способ запланировать или принудительно запустить процесс выдачи «прямо сейчас» из командной строки?
Самый простой способ — перейти по адресу /sidekiq/scheduler и найти любые задачи, в названии которых есть слово «grant». Скорее всего, вам нужна задача Jobs::BadgeGrant, но у некоторых бейджей есть свои собственные задачи.
Я проверил все запланированные задачи в Sidekiq на ближайшие 24 часа, и ни одна из них не содержит токена grant.
Это на продакшене forum.kozovod.com.
Верно, записей нет, как на вашем скриншоте.
Я только что заметил, что мне давно не выдавались бейджи. Сейчас пересобираю контейнер и проверю, будет ли задача запланирована после перезапуска.
Также я заметил, что у одного из моих бейджей на основе кастомного SQL была ошибка — не могло ли это остановить работу всех остальных бейджей?
В теории, нет.
Скорее всего, проблема в неудачном обновлении docker-manager, из-за чего некоторые задания sidekiq не загрузились. Надеюсь, после пересборки всё заработает.
Хорошо, пересборка прошла успешно.
Однако через несколько минут после её завершения я всё ещё не могу найти ни одного токена grant среди 125+ запланированных задач. Это значит, что в моём окружении что-то не работает?
Да, скорее всего. Есть ли у вас какие-либо ошибки в /logs? Какие-либо необычные плагины?
Ничего очевидного не видно. Если вы откроете консоль и введете Jobs::BadgeGrant, что произойдет? Должно выглядеть так:
[1] pry(main)> Jobs::BadgeGrant
=> Jobs::BadgeGrant
Есть ли у вас какие-либо плагины, которые могут мешать работе?
Вот включённые плагины — я стараюсь использовать только популярные и поддерживаемые:
- 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
Спасибо.
В разделе «Планировщик» я теперь вижу следующие задачи:
- Jobs::GrantNewUserOfTheMonthBadges
- Jobs::GrantAnniversaryBadges
- Jobs::BadgeGrant
Все задачи планировщика отображаются в разделе «Повторяющиеся задачи».
Теперь вопрос: безопасно ли мне нажать кнопку «Запустить» и посмотреть, что произойдёт?
Отлично, это значительно упрощает решение задачи!
Да, кнопка триггера безопасна ![]()
Спасибо, запускается.
В прошлый раз это заняло 10 тысяч секунд, так что проверю завтра утром.
Есть ли способ обработать одну конкретную значок? Может быть, через командную строку?
10 000 секунд — это много! На meta это занимает 500 секунд. Возможно, один из ваших запросов для пользовательских значков не очень эффективен? (именно поэтому мы по умолчанию отключаем функцию пользовательского SQL)
Спасибо, я быстро проверил запросы, немного исправил один, и теперь время выполнения составляет всего около 1000 секунд. Я также перенёс свой вопрос по оптимизации SQL в отдельную тему.
Вернёмся к бейджам — теперь всё работает, и все бейджи выданы. Спасибо за вашу помощь и оперативные ответы.



