์ž‘์—… ๋‹ค์‹œ ์‹œ๋„

๊ธฐ๋ณธ์ ์œผ๋กœ Cloud Scheduler ์ž‘์—…์ด ํ•ธ๋“ค๋Ÿฌ๋กœ๋ถ€ํ„ฐ ํ™•์ธ์„ ๋ฐ›์ง€ ๋ชปํ•˜๋ฉด ์ž‘์—…์ด ์‹คํŒจํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜๋ฉฐ ๊ตฌ์„ฑํ•œ ์ง€์ˆ˜ ๋ฐฑ์˜คํ”„์— ๋”ฐ๋ผ ์žฌ์‹œ๋„๋ฉ๋‹ˆ๋‹ค. Cloud Scheduler ์ž‘์—…์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•  ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ด ์žฌ์‹œ๋„ ๋™์ž‘์„ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์ • ์žฌ์‹œ๋„

๋‹ค์Œ ํ‘œ์—์„œ๋Š” ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์žฌ์‹œ๋„ ์„ค์ •์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ตœ๋Œ€ ์žฌ์‹œ๋„ ํšŸ์ˆ˜

maxDoublings์— ์„ค๋ช…๋œ ์ง€์ˆ˜ ๋ฐฑ์˜คํ”„ ์ ˆ์ฐจ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ์—์„œ ์ž‘์—…์„ ์‹คํ–‰ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š” ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค.

์„ค๋ช…

retryCount์ด 0์ด ์•„๋‹Œ ์ˆซ์ž๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ Cloud Scheduler๋Š” ์ž‘์—…์ด ์„ฑ๊ณตํ•˜๊ฑฐ๋‚˜ ์žฌ์‹œ๋„ ํšŸ์ˆ˜๊ฐ€ ์†Œ์ง„๋  ๋•Œ๊นŒ์ง€ ์ง€์ˆ˜ ๋ฐฑ์˜คํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํŒจํ•œ ์ž‘์—…์„ retryCount๋ฒˆ ์žฌ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์ด ์‹œ๊ฐ„๊นŒ์ง€ ์žฌ์‹œ๋„๊ฐ€ ๊ณ„์†๋˜๋ฉด ๋‹ค์Œ ์˜ˆ์•ฝ๋œ ์‹คํ–‰ ์‹œ๊ฐ„์ด ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

retryCount์ด 0์ธ ๊ฒฝ์šฐ (maxRetryDuration๋„ 0์ธ ๊ฒฝ์šฐ) ์ž‘์—… ์‹œ๋„๊ฐ€ ์‹คํŒจํ•ด๋„ ๋‹ค์‹œ ์‹œ๋„๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  Cloud Scheduler๋Š” ๋‹ค์Œ ์˜ˆ์•ฝ๋œ ์‹คํ–‰ ์‹œ๊ฐ„์„ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

5๋ณด๋‹ค ํฐ ๊ฐ’๊ณผ ์Œ์ˆ˜ ๊ฐ’์€ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’ ๊ธฐ๋ณธ๊ฐ’์€ 0์ž…๋‹ˆ๋‹ค.
์ฝ˜์†” ๋ผ๋ฒจ ์ตœ๋Œ€ ์žฌ์‹œ๋„ ํšŸ์ˆ˜
CLI ํ”Œ๋ž˜๊ทธ --max-retry-attempts
API ํ•„๋“œ retryCount

์ตœ๋Œ€ ์žฌ์‹œ๋„ ์‹œ๊ฐ„

์‹คํŒจํ•œ ์ž‘์—…์„ ์žฌ์‹œ๋„ํ•˜๊ธฐ ์œ„ํ•œ ์‹œ๊ฐ„ ์ œํ•œ์œผ๋กœ, ์‹คํ–‰์ด ์ฒ˜์Œ ์‹œ๋„๋œ ์‹œ์ ๋ถ€ํ„ฐ ์ธก์ •๋ฉ๋‹ˆ๋‹ค. retryCount์™€ ํ•จ๊ป˜ ์ง€์ •ํ•˜๋ฉด ๋‘ ํ•œ๋„์— ๋ชจ๋‘ ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ์ž‘์—…์ด ์žฌ์‹œ๋„๋ฉ๋‹ˆ๋‹ค.

์„ค๋ช…

์ดˆ ๋‹จ์œ„ ๊ธฐ๊ฐ„์œผ๋กœ, ์†Œ์ˆ˜์  ์•„๋ž˜ 9์ž๋ฆฌ๊นŒ์ง€ ์ง€์ • ๊ฐ€๋Šฅํ•˜๋ฉฐ 's'๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค(์˜ˆ: '3.5s').

๊ธฐ๊ฐ„์ด 0์ด๋ฉด ์žฌ์‹œ๋„ ๊ธฐ๊ฐ„์ด ๋ฌด์ œํ•œ์ž„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ retryCount๋„ 0์ด๋ฉด ์ž‘์—… ์‹œ๋„๊ฐ€ ์‹คํŒจํ•ด๋„ ์žฌ์‹œ๋„๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’ ๊ธฐ๋ณธ๊ฐ’์€ 0์ดˆ์ž…๋‹ˆ๋‹ค.
์ฝ˜์†” ๋ผ๋ฒจ ์ตœ๋Œ€ ์žฌ์‹œ๋„ ์‹œ๊ฐ„
CLI ํ”Œ๋ž˜๊ทธ --max-retry-duration
API ํ•„๋“œ maxRetryDuration

์ตœ์†Œ ๋ฐฑ์˜คํ”„ ์ง€์† ์‹œ๊ฐ„

์ž‘์—…์ด ์‹คํŒจํ•œ ํ›„ ๋‹ค์‹œ ์‹œ๋„ํ•˜๊ธฐ ์ „์— ๋Œ€๊ธฐํ•  ์ตœ์†Œ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.

์„ค๋ช…

์ดˆ ๋‹จ์œ„ ๊ธฐ๊ฐ„์œผ๋กœ, ์†Œ์ˆ˜์  ์•„๋ž˜ 9์ž๋ฆฌ๊นŒ์ง€ ์ง€์ • ๊ฐ€๋Šฅํ•˜๋ฉฐ 's'๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค(์˜ˆ: '3.5s').

๊ธฐ๋ณธ๊ฐ’ ๊ธฐ๋ณธ๊ฐ’์€ 5์ดˆ์ž…๋‹ˆ๋‹ค.
์ฝ˜์†” ๋ผ๋ฒจ ์ตœ์†Œ ๋ฐฑ์˜คํ”„ ์ง€์† ์‹œ๊ฐ„
CLI ํ”Œ๋ž˜๊ทธ --min-backoff
API ํ•„๋“œ minBackoffDuration

์ตœ๋Œ€ ๋ฐฑ์˜คํ”„ ์ง€์† ์‹œ๊ฐ„

์ž‘์—…์ด ์‹คํŒจํ•œ ํ›„ ๋‹ค์‹œ ์‹œ๋„ํ•˜๊ธฐ ์ „์— ๋Œ€๊ธฐํ•  ์ตœ๋Œ€ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.

์„ค๋ช…

์ดˆ ๋‹จ์œ„ ๊ธฐ๊ฐ„์œผ๋กœ, ์†Œ์ˆ˜์  ์•„๋ž˜ 9์ž๋ฆฌ๊นŒ์ง€ ์ง€์ • ๊ฐ€๋Šฅํ•˜๋ฉฐ 's'๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค(์˜ˆ: '3.5s').

๊ธฐ๋ณธ๊ฐ’ ๊ธฐ๋ณธ๊ฐ’์€ 3,600์ดˆ (1์‹œ๊ฐ„)์ž…๋‹ˆ๋‹ค.
์ฝ˜์†” ๋ผ๋ฒจ ์ตœ๋Œ€ ๋ฐฑ์˜คํ”„ ์ง€์† ์‹œ๊ฐ„
CLI ํ”Œ๋ž˜๊ทธ --max-backoff
API ํ•„๋“œ maxBackoffDuration

์ตœ๋Œ€ ๋”๋ธ”๋ง

์‹คํŒจํ•œ ์ž‘์—… ์žฌ์‹œ๋„ ์‚ฌ์ด์˜ ๊ฐ„๊ฒฉ์ด ๋‘ ๋ฐฐ๊ฐ€ ๋˜๋Š” ์ตœ๋Œ€ ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด ํšŸ์ˆ˜ ์ดํ›„์—๋Š” ์ฆ๋ถ„ ๊ฐ’์ด ์ƒ์ˆ˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

์„ค๋ช… ์žฌ์‹œ๋„ ๊ฐ„ ๋Œ€๊ธฐ ์‹œ๊ฐ„์œผ๋กœ maxDoublings๋ฐฐ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์ž‘์—…์˜ ์žฌ์‹œ๋„ ๊ฐ„๊ฒฉ์€ minBackoffDuration์—์„œ ์‹œ์ž‘ํ•˜์—ฌ maxDoublingsํšŒ ๋™์•ˆ ๋‘ ๋ฐฐ๋กœ ์ฆ๊ฐ€ํ•œ ํ›„ ์„ ํ˜•์œผ๋กœ ์ฆ๊ฐ€ํ•˜๊ณ  ์ตœ์ข…์ ์œผ๋กœ maxBackoffDuration ๊ฐ„๊ฒฉ์œผ๋กœ ์ตœ๋Œ€ retryCountํšŒ ์žฌ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

minBackoffDuration์ด 10์ดˆ์ด๊ณ  maxBackoffDuration์ด 300์ดˆ์ด๊ณ  maxDoublings์ด 3์ธ ๊ฒฝ์šฐ:

  1. ์ž‘์—…์ด 10์ดˆ ํ›„์— ๋‹ค์‹œ ์‹œ๋„๋ฉ๋‹ˆ๋‹ค.
  2. ์žฌ์‹œ๋„ ๊ฐ„๊ฒฉ์ด 3๋ฐฐ๋กœ ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค.
  3. ๊ทธ๋Ÿฌ๋ฉด ์žฌ์‹œ๋„ ๊ฐ„๊ฒฉ์ด 2^3 * 10์ดˆ๋งŒํผ ์„ ํ˜•์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  4. ํ•ด๋‹นํ•˜๋Š” ๊ฒฝ์šฐ ์ž‘์—…์ด retryCountํšŒ ์‹œ๋„๋  ๋•Œ๊นŒ์ง€ (์ตœ๋Œ€ 5ํšŒ) maxBackoffDuration ๊ฐ„๊ฒฉ์œผ๋กœ ์žฌ์‹œ๋„๋ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์š”์ฒญ์€ 10์ดˆ, 20์ดˆ, 40์ดˆ, 80์ดˆ, 160์ดˆ์— ์žฌ์‹œ๋„๋ฉ๋‹ˆ๋‹ค.

minBackoffDuration์ด 10์ดˆ์ด๊ณ  maxBackoffDuration์ด 120์ดˆ์ด๋ฉฐ maxDoublings์ด 2์ธ ๊ฒฝ์šฐ:

  1. ์ž‘์—…์ด 10์ดˆ ํ›„์— ๋‹ค์‹œ ์‹œ๋„๋ฉ๋‹ˆ๋‹ค.
  2. ์žฌ์‹œ๋„ ๊ฐ„๊ฒฉ์ด ๋‘ ๋ฒˆ ๋‘ ๋ฐฐ๋กœ ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค.
  3. ๊ทธ๋Ÿฌ๋ฉด ์žฌ์‹œ๋„ ๊ฐ„๊ฒฉ์ด 2^3 * 10์ดˆ๋งŒํผ ์„ ํ˜•์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  4. ํ•ด๋‹นํ•˜๋Š” ๊ฒฝ์šฐ ์ž‘์—…์ด retryCountํšŒ ์‹œ๋„๋  ๋•Œ๊นŒ์ง€ (์ตœ๋Œ€ 5ํšŒ) maxBackoffDuration ๊ฐ„๊ฒฉ์œผ๋กœ ์žฌ์‹œ๋„๋ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์š”์ฒญ์€ 10์ดˆ, 20์ดˆ, 40์ดˆ, 120์ดˆ, 120์ดˆ์— ์žฌ์‹œ๋„๋ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’ ๊ธฐ๋ณธ๊ฐ’์€ 5์ž…๋‹ˆ๋‹ค.
์ฝ˜์†” ๋ผ๋ฒจ ์ตœ๋Œ€ ๋”๋ธ”๋ง
CLI ํ”Œ๋ž˜๊ทธ --max-doublings
API ํ•„๋“œ maxDoublings

์žฌ์‹œ๋„ ์˜ˆ์‹œ

๋‹ค์Œ ์˜ˆ์—์„œ๋Š” Cloud Scheduler ์ž‘์—…์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜์ง€ ์•Š์„ ๋•Œ ์žฌ์‹œ๋„ ๋™์ž‘์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

retryCount์™€ maxRetryDuration๊ฐ€ ๋ชจ๋‘ ์„ค์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ

๋‘ ์„ค์ • ๋ชจ๋‘ ๊ธฐ๋ณธ๊ฐ’์ด 0์ด๋ฉฐ ์ž‘์—…์ด ์ „ํ˜€ ๋‹ค์‹œ ์‹œ๋„๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Cloud Scheduler๋Š” ๋‹ค์Œ ์˜ˆ์•ฝ๋œ ์‹คํ–‰ ์‹œ๊ฐ„์— ์ž‘์—…์„ ์‹คํ–‰ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

retryCount์™€ maxRetryDuration๊ฐ€ ๋ชจ๋‘ ์„ค์ •๋œ ๊ฒฝ์šฐ

์ž‘์—…์€ maxRetryDuration์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ์ตœ์†Œ retryCountํšŒ ์žฌ์‹œ๋„๋ฉ๋‹ˆ๋‹ค.

์ž‘์—…์ด retryCount๋ณด๋‹ค ๋” ๋งŽ์ด ์žฌ์‹œ๋„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

retryCount์ด ์„ค์ •๋˜๊ณ  maxRetryDuration์ด ์„ค์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ

maxRetryDuration ์„ค์ •์€ ๊ธฐ๋ณธ์ ์œผ๋กœ 0์œผ๋กœ ์„ค์ •๋˜๋ฉฐ ์ž‘์—…์€ ์ •ํ™•ํžˆ retryCount๋ฒˆ ์žฌ์‹œ๋„๋ฉ๋‹ˆ๋‹ค.

retryCount์ด ์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š๊ณ  maxRetryDuration์ด ์„ค์ •๋œ ๊ฒฝ์šฐ

์ž‘์—…์€ ์ตœ๋Œ€ 5ํšŒ๊นŒ์ง€ ๋˜๋Š” maxRetryDuration์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ์—ฌ๋Ÿฌ ๋ฒˆ ์žฌ์‹œ๋„๋ฉ๋‹ˆ๋‹ค.