대량으로 토픽을 닫는 중

rails 콘솔을 사용하여 대량으로 토픽을 닫는 방법에 대한 설명이 담긴 게시물을 찾았습니다: Auto-close old topics from a migrated forum - #10 by zogstrip

다만 몇 가지 질문이 있습니다:

  1. 이 작업을 수행하는 더 새로운 방법이 있나요?
  2. 생성 날짜가 아닌 마지막 활동 날짜 기준으로 닫기를 수행하고 싶다면, created_at 대신 사용할 변수가 있나요?
  3. DM(개인 메시지)이 닫히는 것을 제외할 방법이 있나요? 테스트 환경에서 쿼리를 실행해 보았더니 공개든 비공개든 모든 토픽에 적용되는 것을 확인했습니다. 가능하다면 개인 메시지는 제외하고 싶습니다.
  4. 저희 포럼에는 이전 솔루션에서 가져온 약 16년치의 콘텐츠가 있습니다. 쿼리 실행 시간과 관련하여, (a) 실행에 얼마나 오래 걸리는지 어떻게 확인할 수 있으며, (b) 분할하여 실행하는 것이(예: 2010년 이전 전체, 그다음 2011년, 2012년 등 2023년까지) 더 나은가요, 아니면 단일 쿼리로 실행하는 것이 더 나은가요?

(4번 항목과 관련하여) 시스템 성능에 너무 큰 영향을 주지 않도록 확인하려고 합니다. 하드웨어 사양에 따라 많은 부분이 달라질 수 있다는 것은 알고 있지만, 저희는 인프라 팀이 설치와 하드웨어 관리를 담당하고 있어 실제 하드웨어 사양을 정확히 알지 못합니다.

도움 주시면 감사하겠습니다!

2번에 대해, 데이터 탐색기 플러그인(이 플러그인의 존재를 몰랐습니다)을 사용해 보니, updated_at이 '마지막 답변 타임스탬프’에 해당하는 값인 것 같습니다. 이 평가가 정확합니까?

이 힌트 감사합니다. 제 첫 세 가지 질문에 대해 매우 유용할 것 같습니다. updated_at에 대한 명확한 설명과, 게시글 및 토픽의 확장된 이력을 기반으로 작업을 수행하는 방법에 대해 도움을 주시면 감사하겠습니다.

반드시 먼저 소규모 배치로 테스트해 보세요. 제가 일괄 작업을 실행하다가 커뮤니티 사이트를 멈추게 한 적이 있는데, 그때 부분 테스트를 먼저 했으면 좋았을 텐데 하고 후회했습니다.

https://www.gocomics.com/calvinandhobbes/1986/11/26

감사합니다. 아마도 그런 상황일 거라고 짐작하고 있었습니다. 접근 방식에 대해 확인을 받을 수 있어서 좋습니다.

최근 백업 중 하나를 가져와서 테스트 환경과 별도로 샌드박스 환경을 설정해 보는 방법을 고려하고 있습니다. 해당 설정에서 SSO 부분이 어떻게 작동할지는 확실하지 않지만, 프로덕션 시스템에 직접 영향을 주기 전에 성능이 어떤지 미리 확인해 보면 좋을 것 같습니다.

좋은 아이디어입니다:

특히 활동적인 커뮤니티를 보유하고 있다면, 대량 작업과 함께 사용자가 사이트를 유기적으로 사용하는 데서 오는 영향도 있기 때문에 스테이징 사이트가 프로덕션을 완전히 시뮬레이션하지는 못한다는 점을 참고해 주시기 바랍니다.

당연하죠 - 스테이징 서버 관련 게시물에 대한 안내도 감사드립니다. 꽤 도움이 될 것 같습니다.

네, 사용자 부하는 큰 문제가 되지 않을 것 같습니다. 크롤러,匿名用户, 그리고 등록 사용자를 모두 포함하여 하루 평균 페이지 뷰가 약 50,000회 정도인 것으로 보입니다. 기존 부하 대비 잠재적으로 증가할 수 있는 부하를 파악하는 것은 계획 수립에 도움이 될 것입니다.

결국 스테이징 서버를 설정했습니다(실제로는 꽤 쉬웠습니다. 프로덕션 백업을 복원하고, OIDC만 구성되어 있으므로 관리자 복구 절차로 로그인했습니다). 대략 160K개의 토픽이 있는 것 같고, 약 7,500개의 항목이 있는 한 카테고리에 대해 빠른 테스트를 해보니 제 테스트 시스템에서 6분이 걸렸습니다. 따라서 모든 토픽에 대해 약 2시간이 걸릴 것으로 보입니다. 시스템 성능에 대한 영향은(hotop으로 모니터링) 여기서 꽤 미미해 보였습니다.

rake 명령을 실행할 수 있는 저부하 시간대를 찾을 수 있을 것이고, 원한다면 카테고리 그룹을 단계별로 처리할 수도 있으므로 우리에게 정말 잘 맞을 것입니다.

모든 팁과 도움에 감사드립니다. 지난 며칠 동안 플랫폼에 대해 많은 것을 배웠습니다. :slight_smile: