๋ณ๋ ฌ ๋จ๊ณ์์ ์ฌ๋ฌ ์ฐจ๋จ ํธ์ถ์ ๋์์ ์ํํ๋ฉด ์ํฌํ๋ก์ ์ด ์คํ ์๊ฐ์ ์ค์ผ ์ ์์ต๋๋ค.
sleep, HTTP ํธ์ถ, ์ฝ๋ฐฑ ๋ฑ์ ์ฐจ๋จ ํธ์ถ์๋ ๋ฐ๋ฆฌ์ด ๋จ์์์ ์ผ ๋จ์๊น์ง ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์์ต๋๋ค. ๋ณ๋ ฌ ๋จ๊ณ์ ์ฉ๋๋ ์ด๋ฌํ ๋์ ์ฅ๊ธฐ ์คํ ์์ ์ ์ง์ํ๋ ๊ฒ์ ๋๋ค. ์ํฌํ๋ก์์ ์๋ก ๋ ๋ฆฝ๋ ์ฌ๋ฌ ์ฐจ๋จ ํธ์ถ์ ์ํํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ณ๋ ฌ ๋ธ๋์น๋ฅผ ์ฌ์ฉํ๋ฉด ํธ์ถ์ ๋์์ ์์ํ๊ณ ๋ชจ๋ ํธ์ถ์ด ์๋ฃ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ฏ๋ก ์ด ์คํ ์๊ฐ์ ์ค์ผ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์ํฌํ๋ก๊ฐ ์งํ๋๊ธฐ ์ ์ ์ฌ๋ฌ ๋ ๋ฆฝ ์์คํ ์์ ๊ณ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ณ๋ ฌ ๋ธ๋์น๋ก API ์์ฒญ์ ๋์์ ์ํํ ์ ์์ต๋๋ค. ์์คํ ์ด 5๊ฐ ์๊ณ ๊ฐ ์์คํ ์ ์๋ต ์๊ฐ์ด 2์ด๋ผ๋ฉด ์ํฌํ๋ก์์ ๋จ๊ณ๋ฅผ ์์ฐจ์ ์ผ๋ก ์ํํ๋ ๋ฐ ์ต์ 10์ด๊ฐ ๊ฑธ๋ฆฌ์ง๋ง, ๋จ๊ณ๋ฅผ ๋ณ๋ ฌ๋ก ์ํํ๋ฉด 2์ด๋ง ๊ฑธ๋ฆด ์ ์์ต๋๋ค.
๋ณ๋ ฌ ๋จ๊ณ ๋ง๋ค๊ธฐ
parallel
๋จ๊ณ๋ฅผ ๋ง๋ค์ด ๋ ๊ฐ ์ด์์ ๋จ๊ณ๊ฐ ๋์์ ์คํ๋ ์ ์๋ ์ํฌํ๋ก ๋ถ๋ถ์ ์ ์ํฉ๋๋ค.
YAML
- PARALLEL_STEP_NAME: parallel: exception_policy: POLICY shared: [VARIABLE_A, VARIABLE_B, ...] concurrency_limit: CONCURRENCY_LIMIT BRANCHES_OR_FOR: ...
JSON
[ { "PARALLEL_STEP_NAME": { "parallel": { "exception_policy": "POLICY", "shared": [ "VARIABLE_A", "VARIABLE_B", ... ], "concurrency_limit": "CONCURRENCY_LIMIT", "BRANCHES_OR_FOR": ... } } } ]
๋ค์์ ๋ฐ๊ฟ๋๋ค.
PARALLEL_STEP_NAME
: ๋ณ๋ ฌ ๋จ๊ณ์ ์ด๋ฆ์ ๋๋ค.POLICY
(์ ํ์ฌํญ): ๋ฏธ์ฒ๋ฆฌ ์์ธ๊ฐ ๋ฐ์ํ ๋ ๋ค๋ฅธ ๋ธ๋์น์์ ์ํํ ์์ ์ ๊ฒฐ์ ํฉ๋๋ค. ๊ธฐ๋ณธ ์ ์ฑ ์ธcontinueAll
์ ์ถ๊ฐ ์กฐ์น๋ฅผ ์ทจํ์ง ์์ผ๋ฉฐ ๋ค๋ฅธ ๋ชจ๋ ๋ธ๋์น์์ ์คํ์ ์๋ํฉ๋๋ค. ํ์ฌ๋continueAll
์ ์ฑ ๋ง ์ง์๋ฉ๋๋ค.VARIABLE_A
,VARIABLE_B
๋ฑ: ๋ณ๋ ฌ ๋จ๊ณ ๋ด์์ ํ ๋น์ ํ์ฉํ๋ ์์ ๋ฒ์๊ฐ ํฌํจ๋ ์ฐ๊ธฐ ๊ฐ๋ฅํ ๋ณ์์ ๋ชฉ๋ก์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ๊ณต์ ๋ณ์๋ฅผ ์ฐธ์กฐํ์ธ์.CONCURRENCY_LIMIT
(์ ํ์ฌํญ): ์ถ๊ฐ ๋ธ๋์น ๋ฐ ๋ฐ๋ณต์ด ํ์ ์ถ๊ฐ๋ ๋๊น์ง ๋จ์ผ ์ํฌํ๋ก ์คํ ๋ด์์ ๋์์ ์คํ๋ ์ ์๋ ์ต๋ ๋ธ๋์น ๋ฐ ๋ฐ๋ณต ํ์์ ๋๋ค. ์ด๋ ๋จ์ผparallel
๋จ๊ณ์๋ง ์ ์ฉ๋๋ฉฐ ํ์ ๋จ๊ณ๋ก๋ ์ ์ฉ๋์ง ์์ต๋๋ค. ์์ ์ ์์ฌ์ผ ํ๋ฉฐ ๋ฆฌํฐ๋ด ๊ฐ ๋๋ ํํ์์ผ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋์ ์คํ ์ ํ์ ์ฐธ์กฐํ์ธ์.BRANCHES_OR_FOR
:branches
๋๋for
๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ ์ค ํ๋๋ฅผ ๋ํ๋ ๋๋ค.- ๋์์ ์คํ๋ ์ ์๋ ๋ธ๋์น
- ๋ฐ๋ณต์ด ๋์์ ์คํ๋ ์ ์๋ ๋ฃจํ
๋ค์์ ์ ์ํ์ธ์.
- ๋ณ๋ ฌ ๋ธ๋์น์ ๋ฐ๋ณต์ ์์์ ๊ด๊ณ์์ด ์คํ๋ ์ ์์ผ๋ฉฐ ์คํํ ๋๋ง๋ค ์คํ ์์๊ฐ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค.
- ๋ณ๋ ฌ ๋จ๊ณ์๋ ๊น์ด ํ๋๊น์ง ๋ค๋ฅธ ์ค์ฒฉ ๋ณ๋ ฌ ๋จ๊ณ๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค. ํ ๋น๋ ๋ฐ ํ๋๋ฅผ ์ฐธ์กฐํ์ธ์.
- ์์ธํ ๋ด์ฉ์ ๋ณ๋ ฌ ๋จ๊ณ์ ๋ฌธ๋ฒ ์ฐธ์กฐ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
์คํ์ฉ ํจ์๋ฅผ ๋ณ๋ ฌ ๋จ๊ณ๋ก ๊ต์ฒด
experimental.executions.map
์ ์ฌ์ฉํ์ฌ ๋ณ๋ ฌ ์์
์ ์ง์ํ๋ ๊ฒฝ์ฐ ๋ณ๋ ฌ ๋จ๊ณ๋ฅผ ๋์ ์ฌ์ฉํ๋๋ก ์ํฌํ๋ก๋ฅผ ๋ง์ด๊ทธ๋ ์ด์
ํ์ฌ ์ผ๋ฐ์ ์ธ for
๋ฃจํ๋ฅผ ๋ณ๋ ฌ๋ก ์คํํ ์ ์์ต๋๋ค. ์คํ์ฉ ํจ์๋ฅผ ๋ณ๋ ฌ ๋จ๊ณ๋ก ๊ต์ฒด์ ์์๋ฅผ ์ฐธ์กฐํ์ธ์.
์ํ
์ด๋ฌํ ์ํ์ ๋ฌธ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
๋ณ๋ ฌ๋ก ์์ ์ํ(๋ธ๋์น ์ฌ์ฉ)
์ํฌํ๋ก์ ๋์์ ์คํ ๊ฐ๋ฅํ ์๋ก ๋ค๋ฅธ ์ฌ๋ฌ ๋จ๊ณ ์งํฉ์ด ์๋ ๊ฒฝ์ฐ, ์ด๋ฌํ ์งํฉ์ ๋ณ๋ ฌ ๋ธ๋์น์ ๋ฐฐ์นํ์ฌ ๋จ๊ณ๋ฅผ ์๋ฃํ๋ ๋ฐ ํ์ํ ์ด ์๊ฐ์ ์ค์ผ ์ ์์ต๋๋ค.
๋ค์ ์์์์๋ ์ฌ์ฉ์ ID๋ฅผ ์ํฌํ๋ก์ ์ธ์๋ก ์ ๋ฌํ๊ณ ์๋ก ๋ค๋ฅธ ๋ ์๋น์ค์์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๋ ฌ๋ก ๊ฒ์ํฉ๋๋ค. ๊ณต์ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ธ๋์น์์ ๊ฐ์ ๊ธฐ๋กํ๊ณ ๋ธ๋์น๊ฐ ์๋ฃ๋ ํ์ ์ฝ์ ์ ์์ต๋๋ค.
YAML
JSON
๋ณ๋ ฌ๋ก ํญ๋ชฉ ์ฒ๋ฆฌ(๋ณ๋ ฌ ๋ฃจํ ์ฌ์ฉ)
๋ชฉ๋ก์ ๊ฐ ํญ๋ชฉ์ ๋์ผํ ์์ ์ ์ํํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ณ๋ ฌ ๋ฃจํ๋ฅผ ์ฌ์ฉํ์ฌ ์คํ์ ๋ ๋น ๋ฅด๊ฒ ์๋ฃํ ์ ์์ต๋๋ค. ๋ณ๋ ฌ ๋ฃจํ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ๋ฃจํ ๋ฐ๋ณต์ ๋์์ ์ํํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ธ for ๋ฃจํ์ ๋ฌ๋ฆฌ ๋ฐ๋ณต์ ์์์ ๊ด๊ณ์์ด ์ํํ ์ ์์ต๋๋ค.
๋ค์ ์์์์๋ ๋ณ๋ ฌ for
๋ฃจํ์์ ์ฌ์ฉ์ ์๋ฆผ ์งํฉ์ ์ฒ๋ฆฌํฉ๋๋ค.
YAML
JSON
๋ฐ์ดํฐ ์ง๊ณ(๋ณ๋ ฌ ๋ฃจํ ์ฌ์ฉ)
ํญ๋ชฉ ์งํฉ์ ์ฒ๋ฆฌํ๋ฉด์ ๊ฐ ํญ๋ชฉ์ ์ํ๋ ์์ ์ ๋ฐ์ดํฐ๋ฅผ ์์งํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์์ฑ๋ ํญ๋ชฉ์ ID๋ฅผ ์ถ์ ํ๊ฑฐ๋ ์ค๋ฅ๊ฐ ์๋ ํญ๋ชฉ ๋ชฉ๋ก์ ์ ์งํ ์ ์์ต๋๋ค.
๋ค์ ์์์์๋ ๊ณต๊ฐ BigQuery ๋ฐ์ดํฐ ์ธํธ์ ๋ํ ๊ฐ๋ณ ์ฟผ๋ฆฌ 10๊ฐ๊ฐ ๋ฌธ์ ๋๋ ๋ฌธ์ ์งํฉ์ ๋จ์ด ์๋ฅผ ๊ฐ๊ฐ ๋ฐํํฉ๋๋ค. ๊ณต์ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋จ์ด ์๋ฅผ ๋์ฐํ๊ณ ๋ชจ๋ ๋ฐ๋ณต์ด ์๋ฃ๋ ํ์ ์ฝ์ ์ ์์ต๋๋ค. ์ํฌํ๋ก๋ ๋ชจ๋ ๋ฌธ์์ ๋จ์ด ์๋ฅผ ๊ณ์ฐํ ํ ํฉ๊ณ๋ฅผ ๋ฐํํฉ๋๋ค.
YAML
JSON
๋ค์ ๋จ๊ณ
- ๋ฌธ๋ฒ ์ฐธ์กฐ: ๋ณ๋ ฌ ๋จ๊ณ
- ํํ ๋ฆฌ์ผ: ๋ค๋ฅธ ์ํฌํ๋ก๋ฅผ ๋์์ ์คํํ๋ ์ํฌํ๋ก ์คํ
- ํํ ๋ฆฌ์ผ: ์ฌ๋ฌ BigQuery ์์ ๋์ ์คํ