Node.js를 위한 3가지 작업 스케줄링 패키지
11057 단어 schedulingwebdevjavascriptnode
cron
와 같은 패키지에 의해 처리됩니다. 이 기사에서는 Node.js 앱에 대한 cron과 유사한 기능을 에뮬레이트하는 상위 4가지 작업 예약 패키지를 보여 드리겠습니다.노드 크론
node-cron
모듈은 GNU crontab 기반 node.js용 순수 JavaScript의 작은 작업 스케줄러입니다. 이 모듈을 사용하면 전체 crontab 구문을 사용하여 node.js에서 작업을 예약할 수 있습니다.인기
설치
node-cron
를 사용하여 npm
를 설치할 수 있습니다.$ npm install --save node-cron
예
var cron = require('node-cron');
cron.schedule('* * * * *', () => {
console.log('running a task every minute');
});
노드 일정
Node Schedule은 Node.js를 위한 유연한 cron과 유사하지 않은 작업 스케줄러입니다. 이를 통해 선택적 반복 규칙을 사용하여 특정 날짜에 실행할 작업(임의 기능)을 예약할 수 있습니다. 주어진 시간에 단일 타이머만 사용합니다(매초/분마다 예정된 작업을 재평가하는 대신).
인기
설치
node-schedule
를 사용하여 npm
를 설치할 수 있습니다.$ npm install node-schedule
예
const schedule = require('node-schedule');
const job = schedule.scheduleJob('42 * * * *', function(){
console.log('The answer to life, the universe, and everything!');
});
의제
Agenda는 다음을 제공하는 Node.js용 경량 작업 스케줄링 라이브러리입니다.
인기
설치
npm
agenda
를 사용하여 npm
를 설치할 수 있습니다.$ npm install agenda
또한 이를 가리킬 작업Mongo 데이터베이스(v3)가 필요합니다.
CJS / 모듈 수입
일반 자바스크립트 코드의 경우 기본 진입점을 사용하세요.
const Agenda = require('agenda');
Typescript, Webpack 또는 기타 모듈 가져오기의 경우
agenda/es
진입점을 사용합니다.import { Agenda } from 'agenda/es';
노트:
@types/agenda
에서 마이그레이션하는 경우 가져오기도 agenda/es
로 변경해야 합니다. import Agenda from 'agenda'
대신 import Agenda from 'agenda/es'
를 사용하십시오. 예
const mongoConnectionString = "mongodb://127.0.0.1/agenda";
const agenda = new Agenda({ db: { address: mongoConnectionString } });
// Or override the default collection name:
// const agenda = new Agenda({db: {address: mongoConnectionString, collection: 'jobCollectionName'}});
// or pass additional connection options:
// const agenda = new Agenda({db: {address: mongoConnectionString, collection: 'jobCollectionName', options: {ssl: true}}});
// or pass in an existing mongodb-native MongoClient instance
// const agenda = new Agenda({mongo: myMongoClient});
agenda.define("delete old users", async (job) => {
await User.remove({ lastLogIn: { $lt: twoDaysAgo } });
});
(async function () {
// IIFE to give access to async/await
await agenda.start();
await agenda.every("3 minutes", "delete old users");
// Alternatively, you could also do:
await agenda.every("*/3 * * * *", "delete old users");
})();
agenda.define(
"send email report",
{ priority: "high", concurrency: 10 },
async (job) => {
const { to } = job.attrs.data;
await emailClient.send({
to,
from: "[email protected]",
subject: "Email Report",
body: "...",
});
}
);
(async function () {
await agenda.start();
await agenda.schedule("in 20 minutes", "send email report", {
to: "[email protected]",
});
})();
(async function () {
const weeklyReport = agenda.create("send email report", {
to: "[email protected]",
});
await agenda.start();
await weeklyReport.repeatEvery("1 week").save();
})();
👋 그리고 당신은? Node.js에서 cron 작업을 수행하기 위해 이러한 패키지나 다른 패키지를 사용한 적이 있습니까? 😃 아래에 자유롭게 댓글을 남겨주세요.
📱 연락 유지
이 기사가 마음에 들면 팔로우하는 것을 잊지 말고 다음을 통해 저를 팔로우하여 향후 최신 소식을 받아보세요.
트위터:
매체: https://richard-wynn.medium.com
Github: https://github.com/richard-wynn
Reference
이 문제에 관하여(Node.js를 위한 3가지 작업 스케줄링 패키지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/richardwynn/3-task-scheduling-packages-for-node-js-5de4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)