방금 구성 옵션 CELERYD_PREFETCH_MULTIPLIER
( docs ) 에 대해 알아 냈습니다 . 기본값은 4이지만 (나는 믿습니다) 프리 페치를 해제하거나 가능한 한 낮게 설정하고 싶습니다. 나는 지금 그것을 1로 설정했는데, 그것은 내가 찾고있는 것에 충분히 가깝지만 여전히 내가 이해하지 못하는 것이 몇 가지있다.
프리 페치가 좋은 이유는 무엇입니까? 메시지 대기열과 작업자 사이에 대기 시간이 많지 않은 한 실제로 이유를 알 수 없습니다. 센터). 문서에는 단점 만 언급되어 있지만 장점이 무엇인지 설명하지 못합니다.
많은 사람들이 이것을 0으로 설정하는 것으로 보이며, 그런 식으로 프리 페치를 끌 수 있기를 기대합니다 (제 생각에는 합리적인 가정). 그러나 0은 무제한 프리 페치를 의미합니다. 누구든지 무제한 프리 페치를 원하는 이유는 무엇입니까? 처음에 작업 대기열을 도입 한 동시성 / 비동기 성을 완전히 제거하지 않습니까?
프리 페치를 끌 수없는 이유는 무엇입니까? 대부분의 경우 성능에 대해 해제하는 것이 좋지 않을 수 있지만 이것이 가능하지 않은 기술적 이유가 있습니까? 아니면 구현되지 않았습니까?
경우에 따라이 옵션은에 연결됩니다
CELERY_ACKS_LATE
. 예를 들면. Roger Hu는 "[…] 종종 [사용자]가 정말로 원하는 것은 작업자가 자식 프로세스가있는만큼의 작업 만 예약하도록하는 것입니다. 그러나 이것은 늦은 승인을 활성화하지 않고는 불가능합니다. […]»이 두 옵션이 어떻게 연결되어 있고 다른 옵션 없이는 하나가 불가능한 이유를 이해할 수 없습니다. 연결에 대한 또 다른 언급은 여기 에서 찾을 수 있습니다 . 누군가 두 옵션이 연결된 이유를 설명 할 수 있습니까?