24.03.07
good notes 6로 열심히 끄적임
figjam으로 옮김
Router
<aside> 💡 Controller에 요청을 보낼 수 있는 통로 모듈
</aside>
Task-request
<aside> 💡 Controller가 task-queue에 일을 요청하는 모듈 이 부분은 반드시 함수를 하나로 만들고 싶다. 이것이 객체지향적인 설계라고 생각하고, 이것이 서비스의 확장에 있어서 편리할 것 같기 때문이다.
</aside>
router, 혹은 task-manager에 의해 호출됨
parameter로 다음 진행해야할 file(video)name, step, task-flag(user/batch)가 주어짐
file(video)name은 한 개 이상 들어오므로 list로 받음
filename list의 0번 칸을 참조해서 가져오고, controller가 관리하는 task 중 해당 filename으로 되어있는 task가 존재하지 않는다면 uuid를 생성하고 task list에 insert 후 uuid를 가져옴. 존재한다면 바로 uuid를 가져옴
→ 아니면 step으로 구별해도 됨. 가장 처음 하는 step에서만 uuid가 존재하지 않도록 설계할 것이기 때문에.
이 parameter들로 enqueue 함수 호출
Task-manage
<aside> 💡 Controller에서 현재 관리중인 task들의 상태와 정보를 관리하는 모듈
</aside>
Task-response
<aside> 💡 Controller에서 관리하던 task의 정보를 WAS에 알리는 모듈
</aside>
WAS에 특정 filename or uuid의 task가 완료되었음 알리는 함수 (filename이 편리하긴 할 것 같음. 아니면 uuid 따로 또 저장해야 하니까)
task의 현재 상태를 task-manage로 부터 받아 router로 전달하는 함수
전체 task의 현재 상태를 task-manage로 부터 받아 router로 전달하는 함수
→ 하다 보니까 굳이 단계를 나누어 둔 것 같기도 함. 단지 manage는 manage만 하게 하고 response는 response만 하게 하고 싶어서 이렇게 모듈화 했음.
Queue-router
<aside> 💡 controller로 부터 넘겨받은 task의 정보를 바탕으로 알맞은 queue에 enqueue를 진행하는 모듈 해당 부분은 어떤 전략으로 task를 queue에 넣는 지에 따라 더 복잡해질 수 있음. 이를 대비하기 위해 task-flag를 parameter로 미리 설정함
</aside>
Broker
<aside> 💡 Task-queue에 저장된 task들과 load balancer 간의 task manage를 담당하는 모듈
</aside>
<aside> 💡 이 부분을 좀 더 강화해야함. 부족한 부분이 많음.
</aside>