안녕하세요, 먼저 새로운 RSS 폴링 관리자 인터페이스를 만들어 주셔서 진심으로 감사드립니다. 정말 큰 차이를 만들어 주셨네요!
저희 웹사이트에는 수십 개의 RSS 피드가 있습니다. Sidekiq에서 일부 피드의 작업이 20분 이상 걸리는 것을 확인했습니다. 이로 인해 큐가 쉽게 막히게 됩니다.
RSS polling feed request timeout이라는 설정이 있지만, 이것이 문제의 원인은 아닙니다. RSS 피드는 빠르게 제공되며 로딩 속도도 빠릅니다(최소 Sidekiq가 동일한 피드로 어려움을 겪는 것과 동시에 브라우저로 테스트했을 때는 그렇습니다). 문제는 일부 RSS 피드가 팟캐스트의 모든 에피소드를 포함하는 경우(최근 10~15개만 포함하는 경우와 대조적으로)이며, Discourse가 에피소드가 이미 다운로드되었고 변경 사항이 없더라도 모든 항목을 처리하는 것 같습니다. 기본적으로, 변경 사항이나 새로운 에피소드가 없는 RSS 피드로 인해 Sidekiq가 30분 이상 쉽게 어려움을 겪을 수 있습니다.
이상적으로는, Discourse가 변경 사항이 없음을 빠르게 인식하고 다음 단계로 넘어가면 좋겠습니다.
선택적으로, 피드의 첫 NN개 항목으로 읽기를 제한하는 설정이 있으면 좋겠습니다.
아니면 최소한, NN분(5분, 또는 최대 10분) 후에도 해결되지 않으면 폴링을 종료하는 시간 제한이 있으면 좋겠습니다.
피드 처리에 10분 이상 걸리고 Sidekiq가 100% 바쁠 때 정확히 어떤 일이 일어나는지 궁금합니다. 정확히 어떤 작업이 그렇게 오래 걸리고 처리하기에 그렇게 무거운지 알고 싶습니다.
그중 상당수가 WordPress를 사용하므로, 해당 RSS의 항목 수를 수정해 달라고 요청할 수 있습니다. 하지만 많은 수가 스페인어권 국가에서 인기 있는 플랫폼인 iVoox를 사용합니다. iVoox는 프로그램의 모든 에피소드를 RSS에 포함시키며, (상대적으로) 큰 회사라 ‘문의하기’ 링크조차 찾기 어렵고, 실제로 담당자에게 연결되는 경우도 드뭅니다. 그래서 이 부분은 막혀 있는 상태입니다. 테스트를 위해 iVoox 피드부터 추가하기 시작하고, 원하시면 더 많은 피드를 추가하겠습니다.
RSS 피드를 다시 활성화했고, 첫 번째 RSS 라운드가 대부분 처리되었습니다. 86개의 새 게시물이 나타났는데, 그중 많은 부분이 며칠 전 것이었습니다. 이는 여러 피드가 이전에 처리를 완료하지 못하다가 이제 완료되었음을 의미합니다. 아주 좋습니다!
매우 긴 피드는 여전히 작업이 장시간 동안 계속 진행될 수 있지만, 10분을 초과한 경우는 3건만 확인했습니다. 이 피드는 1시간이 지난 후에도 아직 실행 중입니다… 하지만 정말로 긴 피드이므로 정당화될 수 있을까요? 하지만 다시 말해, 단일 피드가 하나의 작업을 그렇게 오랫동안 점유하는 것 자체가 다소 문제입니다. 아마도 오랜만에 처음 수행되는 전체 가져오기 때문일까요? 다음 RSS 라운드(180분으로 설정되어 있음)에서 다시 확인해 보겠습니다.
아마도 1시간 동안 실행 중인 그 작업은 가져오기(import) 이후의 다른 부분에서 막혀 있는 걸까요? 방금 그 피드의 모든 게시물이 이미지가 포함된 채로 모두 가져와진 것 같다는 걸 알게 되었습니다. 적어도 사용자 관점에서는 가져오기가 완료된 것처럼 보입니다. 아마도 예외적인 경우일 수 있겠네요. 몇 번 더 RSS 라운드를 거친 후 다시 보고하겠습니다.
좋아요, 테스트를 위해 폴링 주기를 10분으로 변경했습니다(우리에게는 충분한 180분으로 되돌릴 예정입니다). zogstrip의 수정 사항 이후로 대부분의 피드가 1분 이내로 처리됩니다. 매우 긴 피드 몇 개는 2분 이상 걸리기도 하지만, 제가 본 바로는 5분을 넘긴 적은 없습니다. 이 RSS 피드만 4분 이상 걸리는 경우가 안정적으로 발생하지만, 피드가 극도로 길기 때문에 이 사용 사례에 대해 더 많은 조치를 취할 수 있을지 확신할 수 없습니다. 브라우저조차 이를 렌더링하는 데 시간이 걸립니다. (무관한 이유로 이를 제거할 수도 있습니다.)
전체 폴링 과정이 5~6분을 넘지 않는다는 점은 놀라운 일입니다. 큰 개선이 되었습니다. 저에게 이 보고서는 해결된 것으로 간주하겠습니다. @zogstrip님, 다시 한번 진심으로 감사드립니다.