일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- ethers
- 컨트렉트 배포 자동화
- git rebase
- ethers v6
- 컨트렉트 동일한 함수이름 호출
- Vue
- nest.js설명
- 프록시배포구조
- ethers websocket
- 체인의정석
- rust 기초
- 스마트컨트렉트 예약어 함수이름 중복
- 러스트기초
- 스마트컨트렉트프록시
- 티스토리챌린지
- SBT표준
- 머신러닝기초
- ambiguous function description
- chainlink 설명
- 스마트컨트렉트 함수이름 중복 호출
- Vue.js
- ethers typescript
- vue기초
- multicall
- 러스트 기초
- 러스트 기초 학습
- 스마트컨트렉트테스트
- 오블완
- 스마트 컨트렉트 함수이름 중복
- ethers type
Archives
- Today
- Total
체인의정석
주기적으로 재시작 하는 node.js 프로그램 만들기 (pm2 ecosystem, crone) 본문
728x90
반응형
1. pm2 ecosystem 사용해서 만들기
이걸 잘 쓰면 도커를 사용한것과 같이 여러개의 봇들을 잘 관리할 수 있다.
먼저 pm2를 설치한 후에 기본적인 설정 파일을 만들어준다.
아래 사이트를 참고하였다.
https://pm2.keymetrics.io/docs/usage/restart-strategies/
env의 경우 dev.env로 따로 만들어 두었으며
다음과 같은 파일을 명령을 실행하는 위치 (env와 동일한 위치)에 넣어주면된다.
ecosystme.config.js
module.exports = {
apps: [
{
name: 'eventbot',
script: './script/example.js',
cron_restart: '*/10 * * * *', // 매 10분마다 실행
watch: false,
env: {
NODE_ENV: 'dev'
}
}
]
};
참고로 cron 시간의 경우
https://crontab.guru/every-10-minutes
위의 사이트에서 미리 측정하고 돌려볼 수 있다.
2. 일반 pm2 + 특정 시간이 지나면 알아서 멈추도록 하는 로직
// Terminate the process after a specific time (e.g., 1 hour = 3600000 ms)
const terminationTime = 360000; // 10 min
setTimeout(() => {
console.log("Terminating process after 1 hour");
process.exit(0); // Graceful exit
}, terminationTime);
다음 코드를 넣어주면 10분 뒤에 알아서 종료가 되게 되고 pm2는 알아서 재시작을 하게 된다.
728x90
반응형
'개발 > backend' 카테고리의 다른 글
node.js) dotenv를 이용한 환경변수 분리 및 winston을 이용한 logger 만들기 (0) | 2024.11.21 |
---|---|
winston으로 백엔드 로그 관리하기 (1) | 2024.09.04 |
mac에서 Jmeter 설치 및 사용해서 api 테스트해보기 (0) | 2024.02.13 |
nestjs-telegraf 사용해보기 (Nest.js 텔레그램봇) (0) | 2023.11.27 |
ethers & websocket 참고 예제 (0) | 2023.11.27 |
Comments