๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ด์ „์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์„œ๋น„์Šค ๋‹จ์—์„œ ๋น„๋™๊ธฐ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ try/catch ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ RejectedExecutorException์— ๋Œ€ํ•œ ๋ฐฉ์–ด๋กœ์ง์„ ์ถ”๊ฐ€ํ•˜์˜€๋‹ค.

 

 

์ด๋Ÿฌํ•œ ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ๋˜๊ณ  ํšŒ์‚ฌ์— ๊ณต์œ ํ•˜์˜€๋Š”๋ฐ ์‹ ๊ธฐํ•œ ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค.

try/catch๋ฌธ์œผ๋กœ ๋ฐฉ์–ด๋กœ์ง์„ ์ถ”๊ฐ€ํ•ด์ฃผ์ง€ ์•Š์•„๋„ AsyncConfig์—์„œ RejectedExecutorException์— ๋Œ€ํ•œ ๋Œ€์‘ ์ฒ˜๋ฆฌ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

๋ฐ”๋กœ ์ด๋ ‡๊ฒŒ ๋ง์ด๋‹ค ..

setRejectedExecutionHandler : RejectedExecution ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ์ง€์— ๋Œ€ํ•œ ์˜ต์…˜์ด๋‹ค.

new ThreadPoolExecutor์—์„œ ํ˜ธ์ถœํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋Š” 4๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

- AbortPolicy : ๋””ํดํŠธ๊ฐ’. RejectedExecutionException์„ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค.

- DiscardOldestPolicy : ์˜ค๋ž˜๋œ ์ž‘์—…์„ ๋ฌด์‹œํ•œ๋‹ค.

- DiscardPolicy : ์ฒ˜๋ฆฌํ•˜๋ ค๋Š” ์ž‘์—…์„ ๋ฌด์‹œํ•œ๋‹ค.

- CallerRunsPolicy : shutdown ์ƒํƒœ๊ฐ€ ์•„๋‹ ๋•Œ, ThreadPoolTaskExecutor์— ์š”์ฒญํ•œ thread์—์„œ ๋‹ค๋ฅธ thread์— ์œ„์ž„ํ•˜์ง€ ์•Š๊ณ  ์ง์ ‘ ์ฒ˜๋ฆฌํ•œ๋‹ค.

์ฆ‰, ์š”์ฒญํ•œ ์“ฐ๋ ˆ๋“œ๊ฐ€ ๋ฉ”์ธ์“ฐ๋ ˆ๋“œ์˜€๋‹ค๋ฉด ๋‹ค๋ฅธ ์“ฐ๋ ˆ๋“œ์— ์œ„์ž„ํ•˜์ง€ ์•Š๊ณ  ๋ฉ”์ธ์“ฐ๋ ˆ๋“œ๊ฐ€ ์ง์ ‘ ์ฒ˜๋ฆฌํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

=> ์“ฐ๋ ˆ๋“œํ’€์ด ๋‹ค ์ฐผ์„ ๋•Œ ์š”์ฒญํ•œ ์“ฐ๋ ˆ๋“œ์—์„œ ๋™๊ธฐ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

 

 


 

RejectedExecutorException์„ ํ•ธ๋“ค๋งํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ์žˆ์—ˆ๋‹ค.

AsyncConfig ๋‚ด์—์„œ ์„ค์ •ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ ํฌ์ŠคํŒ…์— ์ •๋ฆฌํ•˜์˜€๋‹ค.

https://k-ang.tistory.com/141

 

[๋น„๋™๊ธฐ][Spring] @Async ์–ด๋…ธํ…Œ์ด์…˜ ์ปค์Šคํ…€2 - ๋ฐฉ์–ด๋กœ์ง ์„ค์ •

์ด์ „์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์„œ๋น„์Šค ๋‹จ์—์„œ ๋น„๋™๊ธฐ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ try/catch ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ RejectedExecutorException์— ๋Œ€ํ•œ ๋ฐฉ์–ด๋กœ์ง์„ ์ถ”๊ฐ€ํ•˜์˜€๋‹ค. ์ด๋Ÿฌํ•œ ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ๋˜๊ณ  ํšŒ์‚ฌ์— ๊ณต์œ ํ•˜์˜€๋Š”๋ฐ ์‹ ๊ธฐ

k-ang.tistory.com