For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /ko/docs/modules/schedules.md (or send Accept: text/markdown).
예약 작업
스케줄 액션을 통한 워크스페이스 반복 작업.
초보자 연습
전제 조건: 아래 두 개의 초보자 가이드를 읽고, 웹 로컬 설정을 완료하고, 편집기의 루트에서 이 모노레포를 엽니다. 웹 설정은 apps/web/.env.local에 속합니다. Next.js는 루트 .env를 읽지 않습니다. 기본 가짜 모드의 /dashboard는 데이터베이스가 없는 데모입니다. /auth에는 마이그레이션된 데이터베이스가 필요합니다.
빠른 용어: 작업 영역은 한 팀의 별도 사용자, 데이터 및 설정입니다. 서버는 신뢰할 수 있는 백엔드입니다. 제공업체 키를 브라우저 및 전화 코드에 보관하세요. 마이그레이션은 테이블을 생성하거나 업데이트하는 버전이 지정된 데이터베이스 변경입니다. AI 모델은 응답하는 엔진입니다. 모델 카탈로그는 서버의 사용 가능한 모델 ID 및 가격 목록입니다. 공급자는 AI, 이메일, 청구 서비스와 같은 외부 서비스입니다. 자격은 작업 영역에서 기능을 사용할 수 있도록 하는 부여입니다. 웹훅은 한 서비스가 다른 서비스의 URL에 보내는 메시지입니다.
1. Settings → Developers를 열고 일정 컨트롤을 사용하여 UTC 런타임이 포함된 테스트 작업을 생성합니다.
2. 앱을 계속 실행하고 동일한 서버 전용 SCHEDULER_TICK_SECRET를 앱과 터미널에서 사용할 수 있도록 합니다. 저장소 루트에서 아래 명령을 실행하십시오.
3. 기한이 다가오고 작업이 자체 상태에 도달하는지 확인합니다. 아무것도 실행되지 않으면 UTC 시간, 스케줄러 공급자 및 서버 로그를 확인하십시오. 절대 비밀글을 채팅에 붙여넣지 마세요.
사용자 정의 코드의 경우 제공된 prompts/README.md로 시작하고 가장 가까운 프롬프트(앱 화면의 경우 prompts/new-app-screen.md, 공개 페이지의 경우 prompts/new-landing-page.md)를 복사합니다. 서버, 데이터베이스 또는 공급자 작업의 경우 코딩 에이전트에게 이 가이드의 작업을 제공하고 AGENTS.md, .ai/PROJECT_CONTEXT.md 및 일치하는 .ai/ 미러를 읽도록 요청하세요. 여기에 이름이 지정된 정확한 소스 파일을 검사하십시오. 편집하기 전에 파일을 나열하고 확인합니다. 작업 공간 소유권과 서버 전용 비밀을 보존합니다. 차이점을 보여주세요. 원하는 동작, 입력 및 출력 필드, 허용된 역할, 예상되는 성공 및 오류, 테스트 계정, 공급자 또는 장치를 알려주십시오. 샘플 값을 사용하십시오. 절대 진짜 비밀을 붙여넣지 마세요.
corepack pnpm jobs:tick반복 작업을 데이터베이스에 저장
설정 예약은 작업 공간 범위 job_schedule 행에 작업 유형 및 크론 규칙을 저장합니다. Cron 필드는 UTC에서 평가됩니다. createDrizzleJobScheduler.claimDueSchedules는 FOR UPDATE SKIP LOCKED를 사용하여 마감 행을 요청하고 다음 실행을 진행한 후 핸들러를 파견합니다.
일반 JobRunner는 대기열 추가/상태/취소를 약속합니다. 반복은 스케줄러 행에 속합니다. Trigger.dev 워크플로 의미는 명시적으로 유지됩니다.
드라이브 스케줄러 틱
POST /api/internal/scheduler-tick를 활성화하려면 서버 전용 SCHEDULER_TICK_SECRET를 설정하세요. corepack pnpm jobs:tick는 이를 dev/CI용으로 호출합니다. 구성이 없으면 404가 반환됩니다. JOB_PROVIDER=trigger에서 배포된 scheduler.tick cron이 스케줄러를 구동합니다.
# Against a running local app, with SCHEDULER_TICK_SECRET configured:
corepack pnpm jobs:tick소유권 주장과 실행을 별도로 확인
겹치는 틱, 기한/미기한 규칙, 비활성화된 행, 핸들러 실패, 취소 및 다른 작업 공간의 일정을 테스트합니다. 청구/고급 및 작업 완료를 별도로 검사합니다. 청구된 행은 완료된 작업의 증거가 아닙니다.
설치 및 설정
예약 작업 — 다이제스트, 정리, 갱신 — 은 임시 타이머가 아니라 schedule-actions를 통합니다: listWorkspaceSchedules, upsertScheduleAction, removeScheduleAction이 워크스페이스의 cron 구동 작업을 관리합니다.
스케줄은 작업, cron 식, 실행되는 워크스페이스를 지정합니다. 워커는 실행 시점에 컨텍스트를 해석하므로 일시 중지되거나 삭제된 스케줄은 재배포 없이 작업 생성을 멈춥니다.
listWorkspaceSchedules()
upsertScheduleAction({ task, cron })
removeScheduleAction(formData)구현 워크플로
모든 예약 실행을 신뢰할 수 없는 입력으로 취급하세요: 등록 이후 상태가 바뀌었을 수 있으므로 실행 안에서 워크스페이스와 엔타이틀먼트를 다시 해석합니다. 작업을 멱등하게 만드세요 — 재시도되거나 이중 발화된 실행이 효과를 중복해서는 안 됩니다.
스케줄은 운영 표면입니다: 설정이나 로그에 보이게 유지해 멈추거나 폭주한 스케줄을 사용자가 알아채기 전에 찾을 수 있게 하세요.
검증 및 문제 해결
샌드박스에서 스케줄을 수동으로 발화하고, 일시 중지하고, 비활성화된 워크스페이스가 실행 생성을 멈추는지, 중복 발화가 하나의 효과만 내는지 확인하세요. cron 식은 작업 코드에 흩뿌리지 말고 관리된 설정에 두세요.