GAE 작업이 지연되는 방법을 대기합니다.
-
19-09-2019 - |
문제
작업 대기열에서 코드는 URL Fetch를 통해 서버 측에 연결하기 위해 실행됩니다. 내 파일 queue.yaml.
queue:
- Name: default
rate: 10 / m
bucket_size: 1
이러한 설정에서 Tusk는 동시에 한 번에 모두 수행했습니다. 특이성은 요청 사이의 특이성입니다 최소 5 초 이상 지연되어야합니다. 작업이> 5 초로 단계에서 수행해야합니다. (하지만 평행하지 않습니다).
queue.yaml에 설정된 값은 무엇입니까?
해결책
작업간에 최소 지연을 지정할 수 없습니다 queue.yaml
, 현재; 자신의 코드로 (부분적으로) 수행해야합니다. 예를 들어, 버킷 크기 1을 지정하는 경우 (한 번 이상 작업을 한 번에 실행하지 않아야 함) 작업이 5 초 이상 실행되는지 확인하십시오 ( start=time.time()
처음에는, time.sleep(time.time()-(5+start))
결국) 이것은 작동해야합니다. 그렇지 않은 경우, 매장에서 각 작업 기록을 타임 스탬프를 마치고 시작하면 마지막 작업이 5 초 미만으로 끝났는지 확인 하고이 경우 즉시 종료됩니다.
다른 팁
다른 방법은 작업 데이터를 테이블에 저장하는 것입니다. 작업 큐에서 ID 매개 변수를 추가하십시오. 테이블에서 첫 번째 작업을 가져 와서 ID를 작업 대기열 처리 서플렛으로 전달하십시오. 5 초 동안 종료 지연과 다음 작업의 서블릿에서 ID를 통과하고 ....
제휴하지 않습니다 StackOverflow