아파트 온도, 습도, 전력 실시간 데이터 관리 프로젝트 Part 2.
스케줄러를 통한 이메일 보내기 기능 구현
사용자의 실시간 데이터를 서버로 전송받고 데이터베이스에 저장하여 쌓인 데이터를 연산하여 사용자에게 특정한 일자에 보내도록 하는 기능을 제공하기로 했다.
가장 먼저 생각한 방식이자 이상적인 방법이였던 카카오톡으로 전송하기는 토이 프로젝트이기에 사업자 번호 등 카카오에서 요구하는 조건에 부딧혀 포기하고 구글 이메일 보내기로 방향을 틀게 되었다.
구상하는 방식은 이렇다.
- 매월 1일 자정에 모든 동 호수의 데이터를 그래프로 그린다.
- 각 호수별 사용자이자 입주민이라는 가정하에 그래프 이미지를 이메일로 매월 1일 00시 15분에 발송한다.
스케줄러 활용
우리는 node-schedule모듈을 활용하여 스케줄러를 작성하여 메일을 발송하기로 했다.
- 그래프 이미지 그리기
- 모든 집의 데이터를 각각 그래프로 그려 이미지로 파일로 저장
그래프 그리기
1 | const get_month = () => { |
이미지 그리기 코드
1 | const ChartJsImage = require('chartjs-to-image'); |
각각의 파일은 월별 / 데이터 종류로 구분되어 저장되고 저장된 이미지를 사용자에게 전송한다.
- 이메일 보내기
이메일 보내기
1 | // 이메일 보내기 스케줄러 시간 지정 |
테스트를 위해 시간을 조정하여 진행하였고 스케줄러 시간 부분만 원하는 시간으로 조정하면 정상적으로 전송이 된다.
결과
아파트 온도, 습도, 전력 실시간 데이터 관리 프로젝트 Part 2.
http://hanjuren.github.io/2021/11/02/project/apt/아파트-온도-습도-전력-실시간-데이터-관리-프로젝트-Part-2/