1
매 10 초마다 폴링 사가가 있습니다. UPDATE_DEPLOYMENT 요청이 만들어지면 실행중인 폴링 단계를 취소하고 상태를 지우고 새 폴링을 트리거합니다 (상태의 site_location 값이 UPDATE_DEPLOYMENT에 의해 업데이트되기 때문에 새 끝점을 폴링해야 함).취소 할 때 사가가 끝나지 않습니다.
이것은 제대로 작동하지 않는 것 같습니다. 현재 실행중인 폴링 대성공은 취소되지 않고 완료까지 실행되며 결국 실행되는 도중에 변경되는 site_location 상태로 인해 이전 url에만 존재하는 구성 요소를 요청하는 새로운 나머지 url을 시작하기 때문에 결국 실패를보고합니다. 여기
메인 무용담 (UPDATE_DEPLOYMENT 우리의 모든 GUI를 사용하는 표준 아키텍처를 유지 유지하기 위해 전송 될 때 다른 무용담이 SITE_LOCATION 상태를 업데이트 할 책임이있다)export function* watchPollRequest() {
let pollTask;
while (true) {
const action = yield take([POLL, UPDATE_DEPLOYMENT, REPORT_SUCCESS, REPORT_FAILURE]);
switch (action.type) {
case REPORT_SUCCESS:
case REPORT_FAILURE:
pollTask = undefined;
break;
case UPDATE_DEPLOYMENT:
if (pollTask) {
cancel(pollTask);
pollTask = undefined;
}
yield put(clearSummaryData());
yield put(poll());
case POLL:
if (pollTask) {
// only need one poll at a time
break;
}
pollTask = yield fork(onPollRequest);
break;
}
}
}
테스트는 상관없이 때를 보여줍니다 취소는 이전 설문 조사를 실행하여 취소하지 않고 완료까지 실행합니다.