DB 설정
DB_CONFIG = {"host": "100.105.75.47", "port": 5432, "dbname": "postgres", "user": "postgres", "password": "",}
기본 설정 : 주 야간 생산 분류 - 한국 시간(KST) 로컬 기준 ** 마스터 샘플 체크만 시간 기준 다름
주간 : [D-DAY] 08:20:00 ~ 20:19:59 → day 로 설정(08:20:00 & 20:19:59 포함)
야간 : [D-DAY] 20:20:00 ~ 23:59:59 + [DAY+1일] 00:00:00 ~ 08:19:59 → night 로 설정(20:20:00 & 08:19:59 포함)
→ 주 야간 별로 시간 겹치지 않을 것
→ DB 시간 형식 관련 "HH:MI:SS"형식으로 정규화
마스터 샘플 테스트 완료 우뮤 파악 → 20260130 day 와 20260130 night 으로 산출
| prod_day | shift_type | Mastersample | 최초 발생 시각 | updated_at |
|---|---|---|---|---|
| 20260127 | day | O | … | |
| … | … | … | ||
| … | … | … |
| prod_day | shift_type | Mastersample | 최초 발생 시각 | updated_at |
|---|---|---|---|---|
| 20260127 | night | O | … | |
| … | … | … | ||
| … | … | … |
파이썬 데몬 스크립트로 만들 때 추가 사항
dataframe은 consol에 출력 제외
날짜는 [WINDOW]기준 현재날짜 및 현재 시각으로 Default하여 자동으로 전환될 것
멀티프로세스 = 1개
무한 루프 인터벌 5초
DB 서버 접속 실패 시 무한 재시도(연결 성공할 때까지 블로킹)
DB 서버 접속 후 중간에 끊어지면 다시 접속 무한 재시도할 것
백엔드별 상시 연결을 1개로 고정(풀 최소화)
work_mem 폭증 방지
*DB접속 시 “PK 이후 데이터” 증분 조건은 (end_day, end_time) 기준으로 적용
seen_pk: set[(end_day, end_time_norm] 중복 방지 캐시 추가할 것
실행하자마자 [BOOT] 로그가 무조건 나오고, DB가 안 붙으면 [RETRY]가 5초마다 계속 나오게 할 것
“마지막 PK 읽기 / 신규 fetch / insert” 단계마다 INFO적용
fetch된 신규 row만 반영해서 집계를 증분 업데이트(in-memory 최신 바코드 1건 유지 구조)
last_pk는 DB 저장하지 않고 메모리만 사용