밤과라임
3k
2020-03-18 11:19:05
1
141

spring boot scheduler, batch 질문입니다.


 db 저장된 설정 시간에 

 데이터를 처리하여 저장하는 작업을 만들고 있습니다.


 db에 저장된 설정 시간이 언제든지 변경이 가능하기 때문에

 1분간격으로 스케쥴을 돌리고, 

 db로부터 설정값을 불러와 시간을 비교하고 맞으면 작업 실행한다면

 작업이 실행될 때, 시간이 1분이상 걸릴 수 있기 때문에 cron보다는

fixeddelay이 적합하다고 생각합니다. 하지만 fixeddelay 1분이라면

작업 이후 1분이기 때문에 처음엔 00분에 실행되었으나 30초, 29초 이런식이 될 것이고

cron처럼 00초에 실행되도력 하는 것에 어렴움을 갖고 있습니다.

스케쥴 정의된 클래스에 전역변수를 만들고 작업중이면 true, 끝날때 false와 같이 구분자를 두어

바꾸면서 작업하는 것도 생각하고있으나, 클래스 내 전역변수를 지양하는 추세같아 또 망설여집니다.


또한, 일정간격 데이터 처리, 이건 배치 작업과 일치하는 것 같아

배치로 해야할 지, 아니면 스케쥴러로 일정간격으로 메소드를 실행시키는 스케쥴링으로 할지 

어떻게 작업하는게 효율적일지 잘 알지 못해 질문을 남깁니다.


보통 이런상황에선 어떻게 작업을 하나요??

0
0
  • 답변 1

  • 꼬마토끼
    128
    2020-03-18 15:56:06

    DB로 스케줄관리하시면 상태값 필드 하나 더 두고 상태를 바꾸시면 될꺼 같은데요

    대기 상태에 있다가 작업들어가면 작업중 상태로 바꾸고

    스케줄관리에서 작업중인건 못건드리게 하면 됩니다.

    설마 1분간격으로 계속 호출되어야 하는 작업인가요?

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.