CRON 작업으로 실행되는 Node.js 스크립트를 빌드 중입니다. (전체 터미널 스크립트). 이 스크립트는 API를 사용하여 모든 곳에서 데이터를 가져오고 MongoDB (기본 드라이버)가 사용됩니다. 나는 db.close()
문을 사용하지 않았고, 그 스크립트 자체가 결코 끝나지 않을 것이므로 (적어도 터미널에서 그렇게 보입니다), 끝내려면 CTRL + C를 눌러 취소해야합니다.데이터베이스 연결을 닫지 않고 Node.js 스크립트를 CRON 작업으로 실행하면 결국 모든 RAM이 종료됩니까?
이전에이 스크립트를 작성했을 때 Stack overflow의 누군가가 어쨌든 연결을 종료 할 필요가 없다고 말했습니다. 그래서 나는 그렇게했다.
이제이 스크립트가 실제로 실행되고 있습니까? 그리고 이것들은 작은 간격으로 CRON 작업으로 실행되기 때문에 이러한 스크립트가 결국 서버에서 RAM을 제거하게됩니다. 즉, 수천 개의 스크립트가 실행 중이고 db.close()
성명을 기다리고 있을까요?
예제 코드 :
MongoClient.connect(mongoUrl, (err, db) => {
if (err) {
console.log(err);
return;
}
var usersCollection = db.collection('users').find();
usersCollection.on('data', (doc) => {
console.log(doc);
});
정말 좋은 생각인가요? 만약 내가 이것을 제대로 이해한다면,'process.exit (0)'을 사용하면; 'console.log (doc)'이후에, 첫번째 doc 만 얻고 스크립트를 죽일 것인가? – Kunok
@Kunok 당신 말이 맞아요. 나는주의 깊게 스크립트를 읽지 않았다. 물론 스크립트가 끝나야 할 때'process.exit (0);'을 추가해야한다. – rsp
Node를 일주일 동안 사용하고 있는데 아직 너무 익숙하지 않아 스크립트를 죽일 시간 제한을 설정하는 것이 좋을까요? 예를 들어 스크립트가 매 10 분마다 실행되면 새로운 CRON 작업 실행 전에 죽게 놔 둡니다. – Kunok