태스크를 만들 때 실패한 태스크를 재시도할 최대 횟수를 지정하고 재시도에 대한 시간 제한을 설정하며 시도 사이의 간격을 제어할 수 있습니다.projects.locations.queues.tasks.create 태스크가 성공적으로 실행되면 큐에서 삭제됩니다. 모든 경우에 최대 태스크 보관 한도도 적용됩니다.
이 태스크 수준 재시도 구성은 큐 수준 재시도 구성을 재정의합니다.
태스크를 만들 때 재시도 구성
다음 예시는 Cloud Tasks API에 직접 요청을 전송하여 HTTP 대상 태스크를 만들 때 재시도 매개변수를 설정하는 방법을 보여줍니다. App Engine 태스크를 만들 때 동일한 재시도 매개변수를 사용할 수 있습니다. 매개변수에 대한 자세한 내용은
RetryConfig 리소스의
Task 설정을 참조하세요.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID: 필수 항목입니다. 태스크가 생성될 프로젝트의 프로젝트 ID입니다. Google CloudREGION: 필수 항목입니다. 큐가 배포되는 리전입니다(예:us-central1).QUEUE_ID: 필수 항목입니다. 태스크가 추가될 큐의 ID 입니다.URL: 필수 항목입니다. 요청이 전송될 정규화된 URL입니다. 이 문자열은http://또는https://로 시작해야 합니다(예:https://www.example.com).SERVICE_ACCOUNT_EMAIL: 선택사항입니다. 태스크를 실행할 때 대상에 전송되는 요청에 포함된 승인 토큰을 생성하는 데 사용되는 서비스 계정 이메일입니다. 서비스 계정은 큐와 동일한 프로젝트에 있어야 합니다. 호출자에게 서비스 계정에 대한iam.serviceAccounts.actAs권한이 있어야 합니다.OpenID Connect 토큰 대신 OAuth2 액세스 토큰을 생성하려면
oidcToken필드를oauthToken으로 바꿔 서비스 계정 이메일을 지정합니다.MAX_ATTEMPTS: 선택사항입니다. 첫 번째 시도를 포함하여 태스크의 최대 시도 횟수입니다. 무제한 재시도를 허용하려면 이 값을-1로 설정합니다. 에 도달하거나-1로 설정된 경우에도MAX_RETRY_DURATION이 계속 적용됩니다.MAX_ATTEMPTSMAX_RETRY_DURATION: 선택사항입니다. 실패한 태스크를 재시도할 수 있는 최대 시간으로, 태스크가 처음 시도되었을 때부터 측정됩니다. 값은5s와 같이 's'로 끝나는 문자열이어야 합니다. 무제한 기간을 지정하려면 이 값을0s로 설정합니다.MAX_RETRY_DURATION에 도달하거나0s로 설정된 경우에도MAX_ATTEMPTS가 계속 적용됩니다.MIN_INTERVAL: 선택사항입니다. 재시도 시도 간에 대기할 최소 시간입니다. 값은 "s"로 끝나는 문자열이어야 합니다. 예:5s.MAX_INTERVAL: 선택사항입니다. 재시도 시도 간에 대기할 최대 시간입니다. 값은 "s"로 끝나는 문자열이어야 합니다. 예:5s.MAX_DOUBLINGS: 선택사항입니다. 실패한 태스크 재시도 사이의 간격이 두 배가 되는 최대 횟수입니다. 이 횟수 이후에는 증분 값이 상수가 됩니다. 태스크의 재시도 간격은MIN_INTERVAL에서 시작하여MAX_DOUBLINGS시간 동안 두 배로 증가한 후 선형으로 증가하고MAX_INTERVAL간격으로 최종적으로MAX_ATTEMPTS시간까지 재시도합니다.예를 들어
MIN_INTERVAL이10s,MAX_INTERVAL이300s,MAX_DOUBLINGS이3이면 재시도 간격이3번 두 배로 증가하고 2^3 * 10초만큼 선형으로 증가한 후 태스크가MAX_ATTEMPTS번 시도될 때까지MAX_INTERVAL간격으로 재시도됩니다. 10초, 20초, 40초, 80초, 160초, 240초, 300초, 300초 등SCHEDULE_TIME: 선택사항입니다. 태스크가 시도되도록 예약된 시간입니다(RFC 3339 형식, 예:2026-10-02T15:01:23Z). 시간이 설정되지 않았거나 과거인 경우 Cloud Tasks 는 현재 시간으로 설정합니다.
JSON 요청 본문:
{
"task": {
"httpRequest": {
"url": "URL",
"httpMethod": "POST",
"oidcToken": {
"serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL"
}
},
"retryConfig": {
"maxAttempts": MAX_ATTEMPTS,
"maxRetryDuration": "MAX_RETRY_DURATION",
"minBackoff": "MIN_INTERVAL",
"maxBackoff": "MAX_INTERVAL",
"maxDoublings": MAX_DOUBLINGS
},
"scheduleTime": "SCHEDULE_TIME"
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
성공한 경우 응답 본문에 새로 생성된
Task 리소스의 인스턴스가 포함됩니다.
{
"name": "projects/PROJECT_ID/locations/REGION/queues/QUEUE_ID/tasks/TASK_ID",
"httpRequest": {
"url": "URL",
"httpMethod": "POST",
"headers": {
"User-Agent": "Google-Cloud-Tasks"
},
"oidcToken": {
"serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL",
"audience": "URL"
}
},
"retryConfig": {
"maxAttempts": MAX_ATTEMPTS,
"maxRetryDuration": "MAX_RETRY_DURATION",
"minBackoff": "MIN_INTERVAL",
"maxBackoff": "MAX_INTERVAL",
"maxDoublings": MAX_DOUBLINGS
},
"scheduleTime": "SCHEDULE_TIME",
"createTime": "2026-04-30T19:11:50Z",
"dispatchDeadline": "600s",
"view": "BASIC"
}