스케줄 작업
웹사이트 웹 프로세스에서 cron 함수를 중복 없이 실행합니다.
task 작성
// server/tasks/check.task.ts
export const config = {
active: false,
cron: "*/30 * * * * *" // 초를 포함하며 실제 실행 간격은 최소 5초
};
export default async () => {
console.log("check task started");
};cron은 초를 포함한 6자리 형식입니다. 5초 미만 간격을 입력해도 오류를 내지 않고 Runtime이 실제 실행 간격을 최소 5초로 제한합니다. package.json timezone을 사용하고, 설정이 없으면 시스템 시간대를 사용합니다. 이전 실행이 끝나지 않았으면 같은 task를 겹쳐 실행하지 않습니다. 운영에 배포되고 시작된 웹사이트는 active: true인 다음 실행 5초 전에 Manager가 내부 HTTP 핑을 보내 자동으로 깨웁니다.
수동 테스트
에디터에서 task 파일을 열고 테스트 실행을 누르면 active: false여도 cron을 기다리지 않고 한 번 실행합니다. console.log 출력도 테스트 콘솔에서 확인할 수 있습니다.