Go 1.11은 지원이 종료되었으며 2026년 1월 31일에 지원 중단됩니다. 지원 중단 후에는 조직에서 이전에 조직 정책을 사용하여 레거시 런타임의 배포를 다시 사용 설정한 경우에도 Go 1.11 애플리케이션을 배포할 수 없습니다. 기존 Go 1.11 애플리케이션은 지원 중단 날짜 이후에도 계속 실행되고 트래픽을 수신합니다. 지원되는 최신 Go 버전으로 마이그레이션하는 것이 좋습니다.
태스크 큐를 통해 처리 중인 푸시 태스크는 여러 가지 이유로 실패할 수 있습니다. 핸들러가 작업 실행에 실패하여 200~299 범위를 벗어나는 HTTP 상태 코드를 반환하면 App Engine은 성공할 때까지 작업을 재시도합니다.
기본적으로 시스템은 애플리케이션에 너무 많은 요청이 발생하지 않도록 점진적으로 재시도 횟수를 줄이지만 태스크가 성공할 때까지 재시도가 시간당 최대 한 번 발생하도록 예약합니다.
작업 재시도
queue.yaml에 retry 매개변수 요소를 추가하여 태스크 재시도의 고유 스키마를 맞춤설정할 수 있습니다. 이렇게 하면 특정 큐에서 실패한 태스크를 재시도할 최대 횟수를 지정할 수 있습니다. 또한 재시도에 시간 제한을 설정하고 시도 사이의 간격을 제어할 수 있습니다.
다음 예시에서는 다양한 재시도 시나리오를 보여줍니다.
fooqueue에서는 최초 실행 시도 후 최대 이틀 동안 재시도가 최대 7번 이루어집니다. 두 가지 한도를 모두 초과하면 영구적으로 실패합니다.
barqueue에서 App Engine은 최대 백오프에 도달할 때까지 각 재시도 간의 간격을 비례적으로 증가시키면서 태스크를 재시도하고 최대 간격에서는 무한정 재시도합니다. 따라서 요청 간 간격은 10초, 20초, 30초, ..., 190초, 200초, 200초, ...와 같이 됩니다.
bazqueue에서는 재시도 간격이 10초부터 시작하여 3회 동안 두 배로 증가한 후 비례적으로 증가하고 최대 간격에 도달하면 무한정 재시도합니다. 따라서 요청 간 간격은 10초, 20초, 40초, 80초, 160초, 240초, 300초, 300초, ...와 같이 됩니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-04(UTC)"],[[["\u003cp\u003eApp Engine automatically retries tasks that fail, meaning any HTTP status code outside of 200-299, with a gradually decreasing retry rate, up to a maximum of once per hour.\u003c/p\u003e\n"],["\u003cp\u003eRetry settings can be configured for individual queues or specified within the \u003ccode\u003eTask\u003c/code\u003e type, with the latter taking precedence when both are defined.\u003c/p\u003e\n"],["\u003cp\u003eCustom retry schemes can be set up in \u003ccode\u003equeue.yaml\u003c/code\u003e, allowing control over the maximum number of retries and the time limit for retry attempts, as well as the interval between them.\u003c/p\u003e\n"],["\u003cp\u003eDifferent retry behaviors, such as a fixed number of retries, linearly increasing retry intervals, or exponentially increasing intervals followed by a linear increase and then indefinite retries, can be defined.\u003c/p\u003e\n"]]],[],null,["# Retrying Failed Push Tasks\n\nPush tasks being processed via a task queue can fail for many reasons. If a handler\nfails to execute a task (and therefore returns any HTTP status code outside of\nthe range 200--299), App Engine retries the task until it succeeds.\n| This API is supported for first-generation runtimes and can be used when [upgrading to corresponding second-generation runtimes](/appengine/docs/standard/\n| go\n| /services/access). If you are updating to the App Engine Go 1.12+ runtime, refer to the [migration guide](/appengine/migration-center/standard/migrate-to-second-gen/go-differences) to learn about your migration options for legacy bundled services.\n\nBy default, the system gradually reduces the retry rate to avoid overloading your application with too many\nrequests, but schedules retry attempts to recur at a maximum of once per hour\nuntil the task succeeds.\n\n| **Important:** Retry options can be configured for the queue as well specified on the [`Task`](/appengine/docs/legacy/standard/go111/taskqueue/reference#RetryOptions) type. When both are specified, the **latter** takes precedence.\n\nRetrying tasks\n--------------\n\nYou can customize your own scheme for task retries by\nadding the [retry\nparameters](/appengine/docs/legacy/standard/go111/config/queueref#retry_parameters)\nelement in [`queue.yaml`](/appengine/docs/legacy/standard/go111/config/queueref). This\naddition allows you to specify the maximum number of times to retry failed tasks\nin a specific queue. You can also set a time limit for retry attempts and\ncontrol the interval between attempts.\n\nThe following example demonstrates various retry scenarios:\n\n- In `fooqueue`, tasks are retried up to seven times and for up to two days from the first execution attempt. After both limits are passed, it fails permanently.\n- In `barqueue`, App Engine attempts to retry tasks, increasing the interval linearly between each retry until reaching the maximum backoff and retrying indefinitely at the maximum interval (so the intervals between requests are 10s, 20s, 30s, ..., 190s, 200s, 200s, ...).\n- In `bazqueue`, the retry interval starts at 10s, then doubles three times, then increases linearly, and finally retries indefinitely at the maximum interval (so the intervals between requests are 10s, 20s, 40s, 80s, 160s, 240s, 300s, 300s, ...).\n\n queue:\n - name: fooqueue\n rate: 1/s\n retry_parameters:\n task_retry_limit: 7\n task_age_limit: 2d\n - name: barqueue\n rate: 1/s\n retry_parameters:\n min_backoff_seconds: 10\n max_backoff_seconds: 200\n max_doublings: 0\n - name: bazqueue\n rate: 1/s\n retry_parameters:\n min_backoff_seconds: 10\n max_backoff_seconds: 300\n max_doublings: 3\n\nWhat's next\n-----------\n\n- Learn more about the [task queue parameters](/appengine/docs/legacy/standard/go111/config/queueref)."]]