예약 작업 실행
/loop와 cron 예약 도구를 사용하여 Qwen Code 세션 내에서 프롬프트를 반복 실행하고, 상태를 폴링하거나, 일회성 알림을 설정하세요.
예약 작업을 사용하면 Qwen Code가 프롬프트를 자동으로 반복 실행합니다. 배포를 폴링하거나, PR을 모니터링하거나, 오래 실행되는 빌드를 확인하거나, 세션 중 나중에 해야 할 일을 알림하는 데 사용하세요.
터미널에서 생성한 작업은 세션 범위입니다: 현재 Qwen Code 프로세스에 존재하며 종료 시 사라집니다. 디스크에 기록되지 않습니다.
메시징 채널은 별도의 영구 스케줄러를 사용하여 현재 턴 이후 원본 채팅으로 결과를 푸시할 수 있습니다. 채널 명령어, 영속성 동작 및 전달 제약 사항에 대해서는 Scheduled Channel Loops를 참조하세요.
팁: 예약 작업은 기본적으로 활성화되어 있습니다. 비활성화하려면 설정에서
experimental.cron: false를 설정하거나 환경에QWEN_CODE_DISABLE_CRON=1을 설정하세요.
/loop로 반복 프롬프트 예약
/loop 내장 skill은 반복 프롬프트를 예약하는 가장 빠른 방법입니다. 선택적 간격과 프롬프트를 전달하면 Qwen Code가 세션이 열려 있는 동안 백그라운드에서 실행되는 cron 작업을 설정합니다.
/loop 5m check if the deployment finished and tell me what happenedQwen Code가 간격을 파싱하여 cron 표현식으로 변환하고, 작업을 예약하고, 주기 및 작업 ID를 확인합니다. 그런 다음 프롬프트를 즉시 한 번 실행합니다 — 첫 cron 실행까지 기다릴 필요가 없습니다.
간격 구문
간격은 선택 사항입니다. 앞에, 뒤에, 또는 생략할 수 있습니다.
| 형태 | 예시 | 해석된 간격 |
|---|---|---|
| 선행 토큰 | /loop 30m check the build | 30분마다 |
후행 every 절 | /loop check the build every 2 hours | 2시간마다 |
| 간격 없음 | /loop check the build | 기본 10분마다 |
지원되는 단위는 초는 s, 분은 m, 시간은 h, 일은 d입니다. cron은 1분 granularity를 가지므로 초는 가장 가까운 분으로 반올림됩니다. 7m 또는 90m처럼 단위로 균등하게 나누어지지 않는 간격은 가장 가까운 깨끗한 간격으로 반올림되며 Qwen Code가 선택한 값을 알려줍니다.
다른 명령어 루프
예약된 프롬프트 자체가 명령어 또는 skill 호출일 수 있습니다. 이미 패키징한 워크플로를 재실행하는 데 유용합니다.
/loop 20m /review-pr 1234작업이 실행될 때마다 Qwen Code가 직접 입력한 것처럼 /review-pr 1234를 실행합니다.
자율 모드
프롬프트 없이 /loop를 실행하면 고정 프롬프트를 반복하는 대신 자율 루프가 시작됩니다. Qwen Code는 대화에서 이미 설정된 작업의 관리자 역할을 하며, 자리를 비운 동안 작업을 계속 진행합니다:
/loop단순 /loop(프롬프트 없음, 간격 없음)는 자체 페이싱 자율 루프를 실행하고; /loop <interval>은 프롬프트 없이 동일한 자율 루프를 고정 주기로 실행합니다(예: /loop 10m). 각 실행 시 대화에서 이미 설정된 내용을 진행합니다 — 시작한 작업 완료, 진행 중인 PR 유지(리뷰 스레드 대응, 실패하는 CI 수정, 충돌 해결), 팔로우업 약속 이행. 변환에서 이미 설정된 작업에만 작용합니다: 명확한 승인 없이 새 작업을 만들거나 되돌릴 수 없는 변경(push, 삭제, 전송)을 하지 않으며, 모든 것이 조용해지면 중지합니다.
루프 관리
/loop는 기존 작업을 관리하기 위한 두 가지 하위 명령어도 지원합니다:
/loop listID와 cron 표현식과 함께 모든 예약된 작업을 나열합니다.
/loop clear모든 예약된 작업을 한 번에 취소합니다.
일회성 알림 설정
일회성 알림의 경우, /loop 대신 자연어로 원하는 내용을 설명하세요. Qwen Code가 실행 후 자동으로 삭제되는 단일 실행 작업을 예약합니다.
remind me at 3pm to push the release branchin 45 minutes, check whether the integration tests passedQwen Code가 cron 표현식을 사용하여 특정 분과 시에 실행 시간을 고정하고 실행 시점을 확인합니다.
예약 작업 관리
Qwen Code에게 자연어로 작업 목록 또는 취소를 요청하거나, 기본 도구를 직접 참조하세요.
what scheduled tasks do I have?cancel the deploy check job내부적으로 Qwen Code는 다음 도구를 사용합니다:
| 도구 | 목적 |
|---|---|
CronCreate | 새 작업을 예약합니다. 5필드 cron 표현식, 실행할 프롬프트, 그리고 반복 또는 일회 실행 여부를 받습니다. |
CronList | 모든 예약된 작업을 ID, 일정, 프롬프트와 함께 나열합니다. |
CronDelete | ID로 작업을 취소합니다. |
각 예약 작업에는 CronDelete에 전달할 수 있는 8자리 ID가 있습니다. 세션은 한 번에 최대 50개의 예약 작업을 보유할 수 있습니다.
예약 작업 실행 방식
스케줄러는 매초마다 만료된 작업을 확인하고 세션이 유휴 상태일 때 큐에 넣습니다. 예약된 프롬프트는 Qwen Code가 응답 중인 사이가 아니라 사용자의 턴 사이에서 실행됩니다. 작업이 만료되었을 때 Qwen Code가 바쁘면, 현재 턴이 끝날 때까지 프롬프트가 대기합니다.
모든 시간은 로컬 시간대로 해석됩니다. 0 9 * * *와 같은 cron 표현식은 UTC가 아니라 Qwen Code를 실행하는 곳의 오전 9시를 의미합니다.
지터
모든 세션이 동시에 API에 접근하는 것을 방지하기 위해, 스케줄러는 실행 시간에 작은 결정론적 오프셋을 추가합니다:
- 반복 작업은 주기의 최대 10%까지 늦게 실행되며, 최대 15분으로 제한됩니다. 시간별 작업은
:00에서:06사이 어디에서든 실행될 수 있습니다. - 일회성 작업이 정각 또는 반(분
:00또는:30)에 예약된 경우 최대 90초 일찍 실행됩니다.
오프셋은 작업 ID에서 파생되므로 같은 작업은 항상 동일한 오프셋을 받습니다. 정확한 타이밍이 중요하다면 :00이나 :30이 아닌 분을 선택하세요. 예를 들어 0 9 * * * 대신 3 9 * * *를 사용하면 일회성 지터가 적용되지 않습니다.
반복 작업 만료
반복 작업은 기본적으로 생성 후 7일 후에 자동으로 만료됩니다. 작업이 마지막 한 번 실행된 후 스스로 삭제됩니다. 잊혀진 루프가 실행될 수 있는 기간을 제한합니다.
제한을 변경하려면 설정에서 experimental.cronRecurringMaxAgeDays를 설정하거나 QWEN_CODE_CRON_MAX_AGE_DAYS 환경 변수를 설정합니다(환경 변수가 우선합니다 — settings.json 편집이 실용적이지 않은 클라우드 또는 컨테이너 배포에 편리함). 0 값은 만료를 완전히 비활성화하므로 작업을 직접 삭제할 때까지 실행됩니다 — 일일 보고서, 다이제스트 또는 지속적인 모니터링을 호스팅하는 장기 실행 데몬 배포에 유용합니다. 설정된 제한은 재시작 후 디스크에서 복원된 영구 작업에도 적용됩니다.
일회성 작업은 타이머로 만료되지 않습니다 — 한 번 실행 후 스스로 삭제됩니다.
Cron 표현식 참고
CronCreate는 표준 5필드 cron 표현식을 받습니다: minute hour day-of-month month day-of-week. 모든 필드는 와일드카드(*), 단일 값(5), 단계(*/15), 범위(1-5), 쉼표로 구분된 목록(1,15,30)을 지원합니다.
| 예시 | 의미 |
|---|---|
*/5 * * * * | 5분마다 |
0 * * * * | 매시 정각 |
7 * * * * | 매시 7분 |
0 9 * * * | 매일 오전 9시 (로컬) |
0 9 * * 1-5 | 평일 오전 9시 (로컬) |
30 14 15 3 * | 3월 15일 오후 2:30 (로컬) |
요일은 일요일이 0 또는 7, 토요일이 6입니다. 월과 요일 모두 제약이 있을 때(둘 다 *가 아닌), 두 필드 중 하나라도 일치하면 날짜가 매칭됩니다 — 이는 표준 vixie-cron 의미를 따릅니다.
L, W, ? 및 MON, JAN과 같은 이름 별칭과 같은 확장 구문은 지원되지 않습니다.
제한 사항
세션 범위 예약에는 고유한 제약이 있습니다:
- 작업은 Qwen Code가 실행 중이고 유휴 상태일 때만 실행됩니다. 터미널을 닫거나 세션이 종료되면 모든 작업이 취소됩니다.
- 놓친 실행에 대한 보충은 없습니다. Qwen Code가 오래 실행되는 요청으로 바쁜 동안 예약된 시간이 지나면, Qwen Code가 유휴 상태가 될 때 한 번 실행되며 놓친 간격마다 실행되지 않습니다.
- 재시작 간 영속성이 없습니다. Qwen Code를 재시작하면 모든 세션 범위 작업이 삭제됩니다.