모각코 16주차 모임 결과 (22.10.20 / 목요일 / 15시 ~ 18시 / Google Meet)

KIMA·2022년 10월 23일
0
post-thumbnail

목표

작업명세서 즉시/예약 실행 기능에 대한 개괄적인 구조 설계

결과

1. 클라이언트에서 작업명세서 즉시 실행시

  1. 클라이언트작업명세서 ApiController 의 즉시 실행 API를 호출
    • input : 작업명세서 id
  2. 작업명세서 ApiController작업명세서 Service의 즉시 실행 메소드를 호출하여 작업명세서 id를 전달한다.
  3. 작업명세서 Service의 즉시 실행 메소드는 다음과 같은 과정으로 이루어짐
    1. 작업명세서 Repository에서 작업명세서 id로 작업명세서 정보를 불러옴
      1. 불러온 정보
        1. 실행될 Robot 정보
        2. 작업 리스트
    2. 작업리스트를 순회하면서 Command와 + Parameter를 하나로 합쳐 명령어 리스트에 추가
    3. SSH Service에 로봇 접속을 요청
    4. SSH Service에 명령어 실행 요청
  4. SSH Service는 SSH로 명령어 실행 후, 출력된 로그를 작업명세서 Service로 전달
  5. 작업명세서 Service는 전달받은 로그를 작업명세서 ApiController에 전달
  6. 작업명세서 ApiController는 클라이언트로 로그 전달

2. 클라이언트에서 작업명세서 예약 실행시

  1. Scehdular는 매일 23시 58분에 RegisterJobDescriptionJob 실행
  2. RegisterJobDescriptionJob은 DB에서 오늘 실행될 작업명세서 id와 스케줄을 불러옴
  3. RegisterJobDescriptionJobScehdular에 불러온 작업명세서 id를 ExecutionJobDescriptorJob 에 전달하고 ExecutionJobDescriptorJob를 스케줄에 맞게 등록
    • 반복 실행 O cron → 초 분 시 1/1 * ? *
    • 반복 실행 X cron → 초 분 시 일 월 년
  4. 해당 스케줄이 되면 ScehdularExecutionJobDescriptorJob를 실행
  5. ExecutionJobDescriptorJob작업명세서 Service의 즉시 실행 메소드 호출
profile
안녕하세요.

0개의 댓글