Electron 을 쓰다보니 메인프로세스는 Node.js로 사용하게 됨.

웹 서비스와 다르게 모든걸 스텐드얼론 형태를 중심으로 생각해야 하는 환경이라 제약이 좀 있음.


1만개 정도의 DB를 만들고 거기서 자주자주 검색을 해야 하는데, Sqlite3 쓰면 딸깍임.

근데 SQlite3는 동기라서 Blocking이 발생하기에 Main Process에서 억세스해서 조지면, 

작업을 모두 마칠때까지 UI가 프리징 됨. 좀만 길어지면 응답없음 뜸. 


그래서 Worker를 이용해서 스레드를 분리해서 실행해야 함.

기존에 있던 워커풀 라이브러리도 있지만 워커관리 중심이라 

나는 웹 서비스에서 평소대로 하던 것 처럼 

JobQueue 처럼 Job을 던지면 알아서 각 Task의 Progress와 Done 결과 값만 받았으면 좋겠다 싶었음.

메모리 제한 안에서 워커수량은 알아서 늘리고, 작업 끝나면 다음 넘기고, 스레드 닫고.. 등등.


대기열에 작업을 막 수십개씩 던지면 알아서 동시에 2~3개씩만 처리하면서 

각각의 Task에 대한 현재 프로그레스 띄우고 이런걸 원했음.

크롬에서 파일 20개씩 다운 받아보면 어떤건지 대략 알꺼임.


근데 코딩 할려니 뇌세포 다 죽어서 멍~한거임...


아무튼 O1 Pro가 잘 짜줌. ㄷㄷ


const jobId = queue.addJob({ payload }, (status, progress)=> { });
const result = await queue.waitTaskUntilDone(jobId);

대충 이렇게 가능해짐. 
AI 없이 맨땅 헤딩하면서 했으면 하루이틀정도 꼬박 개 삽질했을 듯 .