실망시키지 않으니까요. 크롤링 작업 간의 종속성에 대해 언급하지 않기 때문에 설명하는 문제. 독립적 인 일자리는 주문 방법에 관계없이 ~ TOTAL_TIME
/THROUGHPUT
이 소요됩니다.
scrapyd는 완료되면 바로 다음 작업 처리를 시작합니다. "한 번에 8 개"는 일종의 양동이가 아니므로 여기에 조합/동적 프로그래밍 문제가 없습니다. scrapyd에 28 개의 모든 일을 던져서 실행 시키십시오. 폴링하고 유휴 상태가되면 서버를 종료 할 수 있습니다.
가장 긴 작업을 먼저 예약하면 약간의 이점을 얻을 수 있습니다. 마지막 몇 개의 긴 작업이 완료되는 동안 유휴 슬롯에서 몇 가지 작은 작업을 신속하게 집어 넣을 수 있습니다. 그러나 어떤 병이 나지 않는 한, 그 혜택은 중요하지 않습니다.
max_proc_per_cpu
및/또는 max_proc
에 의해 시행되는이 숫자는 다소 임의적입니다. 그것이 100 % CPU 나 다른 것을 치는 숫자가 아니라면 더 큰 숫자가 더 적합 할 것입니다.
큰 이점을 얻으려면 2-3 위의 가장 큰 일자리를 찾고이를 절반으로 줄이는 방법을 찾으십시오. 자동차로 사이트를 크롤링하는 경우 단일 크롤링을 두 개로 분할합니다. 하나는 자동차 용이고 다른 하나는 오토바이 용입니다. 이것은 일반적으로 가능하며 재정렬보다 더 중요한 이점을 제공합니다. 예를 들어 장시간 작업이 8 시간이고 다음 시간이 5 시간 인 경우 가장 긴 작업을 2 ~ 4 시간 크롤링으로 분할하면 서버를 3 시간 절약 할 수있는 병목 현상이 발생할 수 있습니다.
고마워요,하지만 정말로 무엇을 찾고 있어요. 최적의 시작 순서 (대기열)를 계산하는 스크립트가 필요합니다. 최소화 문제와 비슷합니다. 나는 그것을 계획하기 위해 Laravel을 사용한다. 그래서 그들을 시작하는 것은 문제가 아니다. –