ํฌ๋ก ํํ์์ Spring์์ ํน์ ์๊ฐ ๋ง๋ค ๋ฐ๋ณต๋๋ ์์
์ ์ํํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ ํํ์ ์
๋๋ค
์ค์ผ์ค๋ฌ๋ DB ์์
์ด๋ ๋ฐ๋ณต๋๋ ์์
๋ฑ๋ฑ์์ ๋ง์ด ์ฐ์ด๋๋ฐ์ฉ,
Spring์ cron์ ์ด์ฉํด์ ์๊ฐ ์ฃผ๊ธฐ๋ฅผ ์ค์ ํ ์๊ฐ ์๋ต๋๋ค.
๐ฑ servlet-context.xml ํ์ผ์ task namespace ์ถ๊ฐํ๊ธฐ
<task:scheduled-tasks>
<task:scheduled ref="className" method="excuteFunction" cron="0 0/1 * * * ?" />
</task:scheduled-tasks>
servlet-context.xml์ task namespace๋ฅผ ์ถ๊ฐํ ๋ชจ์ต ์ ๋๋ค
task:scheduled-tasks๋ก ์์ํด์ฃผ๊ณ , ref์๋ ์ค์ผ์ค์ด ๋์๋ ํด๋์ค๋ฅผ ์์ฑํด์ฃผ๋ฉด ๋ฉ๋๋ค.
- ref์๋ bean์ ๋ฑ๋กํด์ฃผ๋ ๊ฒ์ด๋ผ์, @Component, @Controller ๋ฑ์ Annotation์ผ๋ก ๋ฑ๋ก๋ ์ด๋ฆ์ ์ถ๊ฐ
method์๋ ์คํ๋ ๋ฉ์๋๋ฅผ ์ ๋ ฅํด์ฃผ๋ฉด ๋ฉ๋๋ค
๐ฑ cron ํํ์ ์ค์ ํด์ฃผ๊ธฐ
ํฌ๋ก ํํ์์ ์์์๋ถํฐ [์ด-๋ถ-์-์ผ-์-์์ผ-๋
๋] ๋ก ๊ตฌ์ฑ์ด ๋๊ณ ,
๋
๋๋ ์๋ต ๊ฐ๋ฅํฉ๋๋ค
ํํ์์ ๊ณต์ ์ฌ์ดํธ์์ ํ์ธํ ์ ์์ต๋๋น
https://spring.io/blog/2020/11/10/new-in-spring-5-3-improved-cron-expressions
์๋ฅผ ๋ค์ด์ ์ ์์ ์ฒ๋ผ
cron="0 0/1 * * * ?" />
์ด๋ ๊ฒ ์ ์ ํ๋ค๋ฉด, 1๋ถ์ ํ๋ฒ์ฉ excuteFunction ํจ์๊ฐ ์คํ ๋ฉ๋๋ค.
๋ง์ฝ 2023๋ ์ 12์ 45๋ถ์ ๋์ํ๋๋ก ํ๊ณ ์ถ๋ค๋ฉด?
cron="0 45 12 * * * 2023" />
์ด๋ ๊ฒ ์์ฑํ ์ ์์ต๋๋ค.
์ด๊ฑธ ์ธ์ ์์ฑํ๋;; ํ์๊ณ ๊ณ์๋ค๋ฉด ์๋์ผ๋ก ๋ง๋ค์ด์ฃผ๋ ์ฌ์ดํธ๋ ์์ต๋๋ฅ ๐ซ
http://www.cronmaker.com/;jsessionid=node0nxisjbagfffd2bfs6g3qqv7h847086.node0?0
๐ฑ @Scheduled Annotation์ผ๋ก ์ค์ ํ๊ธฐ
servlet-context.xml ๋ง๊ณ annotation์ ๋ถ์ฌ์๋ ์คํํ ์ ์์ต๋๋ฅ
/*...*/
@Scheduled(cron="0 0/1 * * * ?")
public void excuteFunction()
{
...
}
/*...*/
'๐ Java&Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Java์ Hash ์๊ณ ๋ฆฌ์ฆ MessageDigest (0) | 2023.03.16 |
---|---|
HTTP Query Parameter์์ Arrary List ์ฌ์ฉ (0) | 2023.02.01 |
StringUtils (0) | 2023.01.18 |
Looking For Annotation~ (0) | 2023.01.16 |
Intellij) Junit Test Code ์์ฑ ์ "Execution failed for task" ํด๊ฒฐ ๋ฐฉ๋ฒ (0) | 2023.01.09 |