클로져가 초창기엔 thread 관련 된 프로그래밍 테크닉이 좀 있었어.
현재는 거의 다 core.async로 넘어옴. 이게 쓰레드 semantic이 상당히 어려운 거와 관련이 있어
암튼 db 코드를 core.async로 짰는데, 크론잡을 돌릴 일이 있어서 크론잡 라이브러리 쓰고 태스크 정의해서 거기서 db 코드를 콜 하거든
와 근데 무슨 존나 언어 로우레벨 에러가 뜨는 거임. 조사해 보니 크론잡 라이브러리가 thread 프로그래밍 한건데 거기서 core.async 코드를 콜 하니까 에러가 나는 거임. ㅎㄷㄷ
내가 core.async로 만들어논 rabbit mq 스타일 pub-sub 라이브러리가 있는데, 크론잡에서는 걍 퍼블리시 메시지만 채널로 보내게 하고 실제 db 콜은 섭스크라이브에서 하게 바꿔서 해결
한줄요약: 클로져에서는 쓰레드를 되도록 쓰지 말자
현재는 거의 다 core.async로 넘어옴. 이게 쓰레드 semantic이 상당히 어려운 거와 관련이 있어
암튼 db 코드를 core.async로 짰는데, 크론잡을 돌릴 일이 있어서 크론잡 라이브러리 쓰고 태스크 정의해서 거기서 db 코드를 콜 하거든
와 근데 무슨 존나 언어 로우레벨 에러가 뜨는 거임. 조사해 보니 크론잡 라이브러리가 thread 프로그래밍 한건데 거기서 core.async 코드를 콜 하니까 에러가 나는 거임. ㅎㄷㄷ
내가 core.async로 만들어논 rabbit mq 스타일 pub-sub 라이브러리가 있는데, 크론잡에서는 걍 퍼블리시 메시지만 채널로 보내게 하고 실제 db 콜은 섭스크라이브에서 하게 바꿔서 해결
한줄요약: 클로져에서는 쓰레드를 되도록 쓰지 말자
댓글 0