특정 사용자 목록에 배지를 일괄 부여하는 방법이 있을까요?
수백 명의 사용자에게 특정 배지를 부여할 계획인데, 각 사용자의 관리자 페이지에 들어가서 일일이 배지를 부여하는 방법 외에는 다른 방법이 있는지 모르겠습니다…
특정 사용자 목록에 배지를 일괄 부여하는 방법이 있을까요?
수백 명의 사용자에게 특정 배지를 부여할 계획인데, 각 사용자의 관리자 페이지에 들어가서 일일이 배지를 부여하는 방법 외에는 다른 방법이 있는지 모르겠습니다…
이를 위해 /admin/badges 페이지의 일괄 부여(Bulk Award) 도구를 사용할 수 있습니다. ![]()

이것조차도 사용자에게 배지를 부여하지 않습니다. 디버깅에 대한 힌트가 있을까요?
다음에 기반하여:
이메일 또는 사용자 이름을 1줄에 하나씩 입력해야 하며, 코드를 살펴보면 쉼표는 필요하지 않습니다.
처음에 하신 방식이 작동해야 합니다. ![]()
“Your CSV was received and x users will receive their badge shortly.”(CSV가 수신되었으며 x명의 사용자에게 곧 배지가 지급됩니다)라는 메시지를 확인하셨나요?
또한 shortly(곧)라는 점에 유의하세요. 이는 즉시 처리되지 않습니다. 작업 큐(job queue)가 있으며 하루 정도 기다려야 할 수 있습니다. /sidekiq/scheduler 페이지에서 BadgeGrant 작업을 수동으로 트리거할 수 있습니다. 그러면 큐가 비워져야 합니다.
빠른 답변 감사합니다.
“CSV가 수신되었으며 x명의 사용자에게 곧 배지가 지급될 예정입니다”라는 메시지를 확인하셨나요?
네, 확인했습니다!
/sidekiq/scheduler는 확장 프로그램인가요? 저희는 sidekiq를 설치하지 않은 것으로 알고 있습니다. 그리고 현재는 확장 프로그램을 설치할 수 없는 상황입니다. 아마 하루 정도 기다려야 할 것 같습니다.
좋아요, 그러면 괜찮을 것 같습니다!
플러그인이 아닙니다. Discourse는 백그라운드 작업을 처리하기 위해 내부적으로 이 기능을 사용합니다.
Discourse를 셀프호스팅하고 있다면 다음과 같은 경로에서 확인하실 수 있어야 합니다: <your_url>/sidekiq/scheduler.
물론 기다리셔도 됩니다. ![]()
벌크 어워드(Bulk Awards)는 즉시 적용됩니다.
BadgeGrant 작업은 자동 처리되는 경우를 위한 것입니다.
감사합니다! 셀프호스팅으로 운영 중입니다.
하지만 예약 작업 목록에서 보이지 않네요. 그리고 배지도 아직 지급되지 않았습니다.
배지에 영문 이외의 문자가 포함되어 있어서 그런 걸까요? 그게 영향을 줄까요?
배지를 하나씩 나눠 주면倒是 작동합니다.
네, 알려주셔서 감사합니다! 확인차 말씀드리면, 실제로 테스트를 해본 것은 아니고 코드만 살펴봤습니다. 코드를 보면 항목을 큐에 넣는 것 같지만 (다시 살펴보니, 특별히 지시하지 않는 한 큐가 기본적으로 즉시 처리되는 것 같습니다). 죄송합니다! ![]()
그렇지는 않을 것 같은데, 아직 안 되는 건가요?
문제를 찾았습니다.
csv 파일의 첫 번째 사용자가 어딘가에서 누락되었더군요. 첫 번째 사용자에게 배지가 있는지 확인하고 있었지만, 사실 첫 번째 사용자를 제외한 모든 사용자에게 배지가 지급되어 있었습니다.
첫 번째 사용자에게 수동으로 배지를 지급했고, 이제 문제가 해결되었습니다 ![]()
도와주셔서 감사합니다!