20~30초 정도일까요? 또한 다른 카테고리를 이름 변경할 때는 이런 현상이 발생하지 않습니다.
수정: 제 개발용 포럼(상당히 성능이 좋은 컴퓨터에 Ubuntu 서브시스템이 설치된 환경)에서도 같은 문제가 발생합니다.
다시 수정:
더 작은 배치로 나누어 처리하면 작동하는 것 같습니다. 즉, Discourse는 더 강력한 서버(16 vCPU / 32 GB로 업그레이드했습니다)를 사용하더라도 3000개 이상의 주제를 이동하는 것을 선호하지 않는 것으로 보입니다. 따라서 이 문제는 제 카테고리 이름 변경 문제와는 다른 것 같습니다. 여전히 카테고리를 이름 변경할 수 없습니다.
새로운 카테고리 B(이름을 마음대로 변경할 수 있는 카테고리)를 만들고, 카테고리 A(이름을 변경할 수 없는 카테고리)의 모든 주제를 카테고리 B로 이동했습니다. 그 후로는 카테고리 B의 이름을 변경할 수 없게 되었고, 대신 카테고리 A의 이름을 변경할 수 있게 되었습니다.
카테고리 이름 변경을 시도할 때마다 게시글 수가 더 많은 카테고리를 선택해 보았습니다. 콘텐츠가 더 많은 카테고리(게시글이 많고, 주제가 큰 경우)일수록 이름 변경에 더 오래 걸리는 것 같습니다.
이름을 변경할 수 없는 카테고리가 2개 있습니다(실제로 시간이 너무 오래 걸리는 것 같습니다…):
그런 것 같습니다
일부 통계를 다시 계산하고 있는 것일 수 있습니다. Postgres에 연결하여 다음과 같은 쿼리를 실행해 보실 수 있습니다.
SELECT pid, age(query_start, clock_timestamp()), usename, query
FROM pg_stat_activity
WHERE query != '<IDLE>' AND query NOT ILIKE '%pg_stat_activity%'
ORDER BY query_start desc;
이전에 사용하던 포럼(이것도 가져온 것)에서 502 오류가 발생했던 기억은 없지만, 3년 전 가져온 이후로 카테고리를 이름 변경한 적이 없습니다. 카테고리를 이름 변경하는 작업이 느렸는지는 기억이 나지 않습니다.
새로 만든, 규모가 더 큰 포럼은 제가 언급한 Discourse 버전으로 가져온 것이기 때문에 이전 버전과 비교할 수 없습니다.
이 부분에 대한 정정입니다. 이전에 제가 Category.where(id: 21).update(name: "General") 명령어를 사용했던 것은 아마도 주제들을 다른 곳으로 이동시킨 카테고리 때문이었던 것 같습니다. 현재 저는 여러 카테고리에 대해 이 명령어를 여러 번 사용해야 했으며, 명령어 실행 시간이 대상 카테고리의 게시글 수에 비례하는 것으로 보입니다.
즉, 인터페이스에서 카테고리를 업데이트할 때 발생하는 문제와 본질적으로 동일한 문제입니다. 다만 커맨드 라인에서는 타임아웃이 발생하지 않는다는 차이가 있습니다.
30,000개 이상의 주제를 가진 카테고리에서는 약 1분 이상 걸렸고, 15,000개 이상의 주제를 가진 카테고리에서는 30초 이상 걸렸으며, 주제가 적은 카테고리에서는 빠르게 처리되었습니다.