저는 AWS EC2 인스턴스(우리의 Discourse 인스턴스가 실행 중인 곳)의 시스템 관리자가 아니라, Discourse 인스턴스 자체의 관리자입니다. 3주 전 보안상의 이유로 AWS SES 이메일 서비스가 중단되었습니다. 클라우드 팀이 이제야 이를 수정하고 있습니다. 따라서 3주 동안 우리 사이트는 이메일을 보낼 수 없었고, 현재 실패한 작업(failed jobs)이 40,000개 이상, 재시도(retries)도 그와 비슷한 수만큼 쌓여 있는 것을 보고 있습니다. 저는 웹 개발자가 아니기 때문에 Sidekiq 페이지가 무엇을 의미하는지 정확히 이해하지 못하지만, 이메일 서버가 다시 온라인 상태가 되면 실패한 작업들이 재시도되어 3주 동안 받지 못한 구식 이메일이 사용자에게 대량으로 발송될까 봐 걱정됩니다. 실제로 그렇게 될까요? 이메일 서버가 오프라인 상태였기 때문에 전송되지 못한 이메일을 Discourse가 다시 보내는 건가요? 그렇다면 우리 사이트에서 온 이메일로 사람들의 메일함을 범람시키지 않도록 이를 비활성화하는 방법은 무엇인가요? 세밀한 설정이 가능한가요? 예를 들어 특정 날짜 이후의 새로운 활동에 대한 이메일만 보내도록 할 수 있나요?
당신의 우려는 정당합니다.
이 문제를 해결할 수 있는 시간이 얼마나 되는지 확실하지 않네요. 하나의 해결책은 이메일을 수신하지만 단순히 삭제하는 메일 서버를 설정하고 구성하는 것입니다.
정말 빠르고 (매우) 더러운 해결 방법은 redis-cli를 사용하여 flushdb 명령을 실행하는 것입니다. 이렇게 하면 모든 대기 중인 작업이 삭제됩니다. 또한 모든 사용자의 로그아웃도 이루어집니다. 이후 모든 정규 작업이 다시 실행되도록 Discourse를 재시작하십시오.
특정 유형의 큐에서 모든 작업을 삭제하면 해결될 것입니다.
(다시 가서 이걸 어떻게 하는지 찾아봐야 할 것 같습니다…)
확신하는 것 같습니다. 문제를 해결하는 데 3주나 걸었으니까요.
sidekiq에서 작업을 정리하는 법을 Google로 검색해서 메일 작업을 삭제할 수 있는지 물어볼 수 있습니다. 그것이 최선의 방법이라고 생각합니다.
직접 접근 권한이 없거나 도움을 줄 사람을 고용할 수 없는 상황인 것 같습니다. 실행 중인 ec2로 ssh 접속이 가능한가요? 웹 인터페이스를 통해 5만 개를 삭제하는 데 도전해 볼 수 있습니다.
kill/delete 옵션이 있는 사이드킥 페이지가 정상적으로 작동했습니다. EC2 시스템 관리자가 필요하지 않았고, 포럼 관리자 권한만 있으면 사이드킥 페이지에서 작업을 수행할 수 있었습니다. 대기 중인 모든 이메일을 삭제할 수 있었습니다.
이메일 서버가 다시 온라인으로 전환된 후, “대기 중” 상태의 이메일은 다시 전송되지 않았습니다.



