2024 05 07
오늘의 계획
- 스케쥴러 프로세스를 이벤트 루프로 변환 할 수 있는지에 대한 간단한 검증 시작
- state 에 flag 를 넣고 무한 루프를 돌리자. flag 가 변하면 루프를 끝내자.
- flag 를 fastapi 에서 조회/변조 할 수 있는지 시험해보자.
해봤다!
state 에 flag 를 넣고 무한 루프를 돌리자. flag 가 변하면 루프를 끝내자.
lifespan 내에서 처리하니까 되긴 한다. 즉, 적-절한 옵션이 함께 한다면 가능은 하다!
flag 를 fastapi 에서 조회/변조 할 수 있는지 시험해보자.
이건 한번에 달성 할 수 없었다. 값을 변경하려는 시도는 잘 작동하지 않았다.
ASGI 스펙을 다시 읽어보니 state 는 전적으로 application 의 제어에 있으며, server는 얕은 복사만 수행한다고 되어 있다.
그렇다면 dict of dict 하면 변조가 된다는 얘기렸다? -> 된다.
오늘의 결론
- job runner 를 잘 다듬으면 이벤트 루프로 변환 시킬 수 있다.
- 그렇게 만든 새 루프와 메인 루틴의 통신은 변수로 가능하다. (같은 프로세스의 같은 스레드 이므로)
- 한번 끄면 다시 켜는건 어려울 것 같다. pause 가 아니라 kill 이라 이름지어야 하겠다.