안녕하세요.
큐로 생산자 소비자 구조를 구성하고, 생산자에서 시리얼 통신으로 계측기에서 데이터를 취득하고 있습니다.
소비자 쪽에서 이 데이터를 받아서 CSV 로 저장 중입니다.
큐 동작이 통신 타이밍에 영향을 줄 수 있다는 말을 들어서 문의차 글을 남겨 봅니다.
큐에는 타임아웃 설정을 하지 않고, 에러 처리해서 소비자 쪽에서 받고 있습니다.
감사합니다.
제 경험상 큐동작에서 영향을 미치는 경우는 2가지였는데
1. 큐 크기를 작게 설정하고, 큐가 제 때 비워지지 않아서 큐에 삽입 시 시간이 걸릴 때
-> 생산자 루프에 딜레이가 발생
2. 큐의 크기를 지정하지 않거나, 큐의 데이터 타입을 문자열로 지정하여 메모리가 Dynamic alocation 으로 RAM 을 자꾸 긁어 댈 때
-> 메모리 충돌 에러 발생으로 프로그램 종료
상황이 있었습니다.
1. 상황은 충분히 큐를 크게 잡는 수 밖에 없고
2. 상황은 문자열을 좀 크게 한번 써서 메모리를 확보해 놓고 사용하는 방법으로 해결했습니다.
날짜: 08-17-2025 06:24 PM
앗~ 그렇군요.
저는 주로 구조 제어 하는데 Queue 를 쓰는지라... 클러스터 형태가 주를 이룹니다.
데이터도 커맨드 정도고... 그래서 Queue 를 바로 소비 합니다.
제가 제어 상태를 자세히 설명 안했군요.
제가 이해가 가지 않는다 했던건 이런식으로 만들어서 그랬던 겁니다.