노드에서 Cron 작업을 스케줄링합니다.노드 크론이 있는 js
6873 단어 nodejavascript
이런 상황에서 우리는cron의 일을 기대합니다!노드에 있습니다.
node-cron
의 도움으로 Cron 설정 작업은 간단합니다.우리가 그것이 무엇을 할 수 있는지 봅시다.뭐 공부 해요?
아마도 너는 누군가가 매일 너를 보충하고 너의 그날의 업무 효율과 진보를 칭찬하기를 바란다.있다
node-cron
가능하다!이 강좌에서 우리는 노드에 Express 서버를 설정할 것이다.js는 마음에 들지 않는 개발자에게 (또는 당신 자신에게...)매일 부끄럽지 않은 칭찬이 있다.이 서버는 매일 저녁 5시 30분에 임무를 실행하도록 안배하여 개발자들이 업무 중에 풍부한 성과를 거두는 것을 축하할 것이다.시작합시다!
이 강좌는 당신의 기계에 설치되었다고 가정합니다Node.js
설정 작업
여기서 첫 번째 단계는 간단한 Express 서버를 시작하고 실행하는 것입니다.항목을 저장하려면 디렉토리가 필요합니다.
mkdir <project-name>
cd <project-name>
설치 모듈
이제 이 디렉토리에서 NPM을 초기화하여 필요한 패키지를 설치합니다.
npm init
저희 package.json
파일이 생성되었습니다. 이 패키지를 설치하겠습니다.우리는 다음을 필요로 합니다.express
- 웹 서버 프레임워크node-cron
- 작업 스케줄링nodemailer
- 이메일 보내기npm i --save express node-cron nodemailer
기본 서버 구축
우리 서버의 포털 파일은
index.js
로 명명됩니다.실행을 통해 생성:touch index.js
다음 내용으로 간단한 express 서버를 시작합니다.const express = require('express'),
app = express(),
nodemailer = require('nodemailer'),
cron = require('node-cron'),
PORT = 3001
app.listen(PORT, () =>
console.log(`Listening on ${PORT}`)
)
여기서, 우리는 맨 위에 필요한 모든 패키지를 가져오고, express 프로그램을 실례화하고, 포트 3000에서 서버를 시작하고 있습니다.우리의 express 서버는 이미 모두 설정되었습니다!다음 명령을 실행하여 서버를 시작할 수 있습니다.
node index.js
우리의 임무를 안배하다
우리 서버 그룹이 있으면 우리는 지금 스케줄링을 시작할 수 있습니다!
node-cron
에는 schedule()
라는 주함수가 있는데 이것은 모든 작업의 출발점이다.schedule()
세 가지 매개변수를 사용할 수 있습니다.expression
- 작업이 실행될 시간을 정의하는cron 표현식입니다.이것은 표준적인cron 문법과 라이브러리에 특정한 추가 옵션을 따릅니다. here function
- 지정된 시간 간격options
- 구성 옵션을 사용하는 객체입니다.이 옵션에 대해 설명합니다here.이 강좌에서, 우리는 어떠한 추가 옵션도 설정하지 않기 때문에, 나는 이 인자를 생략할 것이다.여기서 우리는 다음과 같은 표현식 스케줄링 임무에 근거한다.
* * * * *
, 이 표현식은 분당 계산된다.이 작업을 실행할 때마다 메시지running every minute
가 콘솔에 기록됩니다.다음은 추가 표현식 예입니다.
* * * * Fri
매주 금요일 운행1 * * * *
날짜당 분 수는 1 시입니다.(12:01, 3:01, 4:01) 45 7 * * *
매일 오전 7시 45분 운행(24시간 시계 사용)30 17 * * *
그럼 우리 안배합시다!const express = require('express'),
app = express(),
nodemailer = require('nodemailer'),
cron = require('node-cron'),
PORT = 3001
cron.schedule('30 17 * * *', () =>
console.log('Running at 5:30pm every day')
)
app.listen(PORT, () =>
console.log(`Listening on ${PORT}`)
)
경탄했어우리는 매일 오후 5시 30분에 임무를 실행하는express 서버가 있습니다.node-cron
설정이 매우 간단합니다.이제 우리는 이 프로젝트를 완성하고 자신에게 우리가 필요로 하는 격려를 보내기 시작할 수 있습니다!이메일 보내기
Gmail 계정을 사용하여 메일 요청을 설정합니다.만약 당신이 이메일을 보내려고 시도할 때 어떤 인증 오류를 받았다면, 아마도 Gmail이 차단되었기 때문일 것이다
Less Secure Apps
.이 설정을 Allow Less Secure Apps
here로 전환해야 합니다.참고: 테스트를 완료한 후 이 설정을 닫는 것이 좋습니다.
우리의 운송차를 설치하다
우리는 우선 이른바 a
transporter
를 설치해야 한다.인증 세부 정보 및 전자 메일 호스트에 대한 정보가 저장됩니다.const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: '[email protected]',
pass: 'password'
}
})
주의: 실제 장면에서 신분 검증 상세 정보는 기밀이나 특정한 환경 변수로 저장하여 원본 코드에 증빙서류를 저장하지 않도록 해야 한다.이것은 전자 우편을 보내기 시작할 수 있는 전송을 설정합니다.저희가 예약한 작업 중, 이메일을 보내 드리겠습니다.
const express = require('express'),
app = express(),
nodemailer = require('nodemailer'),
cron = require('node-cron'),
PORT = 3001
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: '[email protected]',
pass: 'password'
}
})
cron.schedule('30 17 * * *', async () =>
transporter.sendMail({
from: '[email protected]',
to: '[email protected]',
subject: 'You are awesome',
text: 'You did SUCH A GOOD JOB TODAY. CONGRATS!! 🎉🎉🎉'
}, (error, info) => {
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
})
)
app.listen(PORT, () =>
console.log(`Listening on ${PORT}`)
)
이렇게!매일 오후 5시 30분에 이메일 한 통이 [email protected]
에서 [email protected]
으로 전송되고 매우 고무적인 메시지를 보냅니다.😁결론
우리의 응용 프로그램이 완성됨에 따라, 우리는 현재 매일 자신에게 급히 필요한 격려를 보낼 수 있다. (또는 더욱 빈번하게 보낼 수 있다. 구체적으로는 당신이 임무를 어떻게 설정하고 당신의 요구 수준에 달려 있다.)😜).
You are awesome
필요한 시간 간격으로 임무를 배치하는 것이 매우 쉽다.그것은 또 많은 다른 설정이 있어서 그것을 위해 매우 멋진 용례를 제공했다.나는 그들의 문서를 읽고 각종 설정 옵션으로 무엇을 할 수 있는지 보라고 강력히 건의한다.도움이 되었으면 좋겠습니다. 읽어 주셔서 감사합니다!
freepik에서 만든 달력 벡터 - www.freepik.com
Reference
이 문제에 관하여(노드에서 Cron 작업을 스케줄링합니다.노드 크론이 있는 js), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sabinthedev/scheduling-cron-jobs-in-nodejs-with-node-cron-o4c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)