정부지원사업 공고 수집 데몬(gov-scraper) 추가
- government/ Node 데몬: Open API 우선 + HTML 보조 + 디스커버리 전략 - Strategy 패턴 소스 어댑터: KStartupApiSource(공공데이터 Open API), GenericHtmlSource(config 기반) - sundol 3단계 폴백 크롤러(cheerio→Jina→Playwright CDP) Node 재구현, sundol-chrome(9222) 재사용 - Oracle thick 모드(Instant Client + sso 지갑) 접속, gov_source/gov_opportunity 적재(중복제거) - K-Startup 29,017건 + 중기부(mss) 30건 적재 검증, PM2 gov-daemon 등록(60분 주기) - 기업마당(bizinfo)은 자체 crtfcKey 발급 대기 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
19
government/src/bootstrap.js
vendored
Normal file
19
government/src/bootstrap.js
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
// Oracle Instant Client(thick 모드)는 libnnz 등 의존 라이브러리를 LD_LIBRARY_PATH 로 찾는다.
|
||||
// LD_LIBRARY_PATH 는 프로세스 시작 시점에만 읽히므로, 누락 시 동일 인자로 한 번 재실행한다.
|
||||
// 진입점(daemon.js, cli.js) 최상단에서 가장 먼저 import 할 것.
|
||||
import { spawnSync } from 'node:child_process';
|
||||
|
||||
const IC = process.env.ORACLE_IC_LIB_DIR || '/home/opc/oracle-ic/instantclient_23_26';
|
||||
const current = (process.env.LD_LIBRARY_PATH || '').split(':').filter(Boolean);
|
||||
|
||||
if (!current.includes(IC)) {
|
||||
const env = {
|
||||
...process.env,
|
||||
LD_LIBRARY_PATH: [IC, ...current].join(':'),
|
||||
};
|
||||
const result = spawnSync(process.execPath, process.argv.slice(1), {
|
||||
stdio: 'inherit',
|
||||
env,
|
||||
});
|
||||
process.exit(result.status ?? 1);
|
||||
}
|
||||
Reference in New Issue
Block a user