Skip to Content
ユーザーガイド機能スケジュールタスク

スケジュールでプロンプトを実行する

/loop と cron スケジューリングツールを使用して、Qwen Code セッション内でプロンプトを繰り返し実行したり、ステータスをポーリングしたり、1 回限りのリマインダーを設定したりします。

スケジュールタスクを使用すると、Qwen Code が自動的に定期的にプロンプトを再実行できます。デプロイのポーリング、PR の監視、長時間実行ビルドの確認、セッション内で後で何かを行うよう自分にリマインドするなどに使用します。

タスクはセッションスコープです。現在の Qwen Code プロセス内に存在し、終了すると消えます。ディスクには何も書き込まれません。

ヒント: スケジュールタスクはデフォルトで有効になっています。無効にするには、設定experimental.cron: false を設定するか、環境変数 QWEN_CODE_DISABLE_CRON=1 を設定してください。

定期的なプロンプトを /loop でスケジュールする

/loop バンドルスキル は、定期的なプロンプトをスケジュールする最も簡単な方法です。オプションの間隔とプロンプトを渡すと、Qwen Code はセッションが開いている間、バックグラウンドで動作する cron ジョブを設定します。

/loop 5m check if the deployment finished and tell me what happened

Qwen Code は間隔を解析し、cron 式に変換して、ジョブをスケジュールし、間隔とジョブ ID を確認します。そして、最初の cron 発火を待たずに、即座にプロンプトを一度実行します。

間隔の構文

間隔はオプションです。先頭に置くことも、末尾に置くことも、完全に省略することもできます。

形式解析された間隔
先頭トークン/loop 30m check the build30分ごと
末尾の every/loop check the build every 2 hours2時間ごと
間隔なし/loop check the buildデフォルトは10分ごと

サポートされている単位は s (秒)、m (分)、h (時間)、d (日) です。秒は最も近い分に切り上げられます(cron は1分単位の粒度のため)。単位内で割り切れない間隔(例: 7m、90m)は、最も近い区切りの良い間隔に丸められ、Qwen Code は選択した値を通知します。

他のコマンドをループする

スケジュールされたプロンプト自体がコマンドやスキルの呼び出しになることもあります。これは、すでにパッケージ化したワークフローを再実行する場合に便利です。

/loop 20m /review-pr 1234

ジョブが発火するたびに、Qwen Code は /review-pr 1234 を入力したかのように実行します。

ループの管理

/loop は既存のジョブを管理するための 2 つのサブコマンドもサポートしています。

/loop list

すべてのスケジュールジョブを ID と cron 式とともに一覧表示します。

/loop clear

すべてのスケジュールジョブを一度にキャンセルします。

1 回限りのリマインダーを設定する

単発のリマインダーには、/loop を使わずに自然言語で行いたいことを記述します。Qwen Code は、実行後に自動的に削除される単発タスクをスケジュールします。

remind me at 3pm to push the release branch
in 45 minutes, check whether the integration tests passed

Qwen Code は cron 式を使用して発火時刻を特定の分と時に固定し、発火時刻を確認します。

スケジュールタスクを管理する

自然言語で Qwen Code にタスクの一覧表示やキャンセルを依頼するか、基盤となるツールを直接参照します。

what scheduled tasks do I have?
cancel the deploy check job

内部では、Qwen Code は以下のツールを使用します:

ツール目的
CronCreate新しいタスクをスケジュールします。5フィールドのcron式、実行するプロンプト、繰り返しまたは単発かを指定します。
CronListすべてのスケジュールタスクをID、スケジュール、プロンプトとともに一覧表示します。
CronDeleteIDでタスクをキャンセルします。

各スケジュールタスクには8文字のIDがあり、それを CronDelete に渡せます。セッションは最大50のスケジュールタスクを同時に保持できます。

スケジュールタスクの実行方法

スケジューラは毎秒、期限が来たタスクをチェックし、セッションがアイドル状態のときにキューに追加します。スケジュールされたプロンプトは、あなたのターンの間、つまり Qwen Code が応答中の間ではなく、その間に発火します。Qwen Code がタスクの実行時刻にビジー状態だった場合、プロンプトは現在のターンが終了するまで待機します。

すべての時刻はローカルタイムゾーンで解釈されます。0 9 * * * のような cron 式は、UTC ではなく、Qwen Code を実行している場所の午前9時を意味します。

ジッター

すべてのセッションが同じ実時間にAPIにアクセスするのを避けるため、スケジューラは発火時刻に小さな決定論的オフセットを追加します:

  • 繰り返しタスク は、周期の最大10%遅れて発火します(最大15分)。1時間ごとのジョブは :00 から :06 の間で発火する可能性があります。
  • 単発タスク で、正時または30分(分 :00 または :30)にスケジュールされたものは、最大90秒早く発火します。

オフセットはタスクIDから導出されるため、同じタスクは常に同じオフセットになります。正確なタイミングが重要な場合は、:00:30 以外の分を選択してください。例えば 0 9 * * * ではなく 3 9 * * * とすると、単発のジッターは適用されません。

3日間の有効期限

繰り返しタスクは作成から3日後に自動的に期限切れになります。タスクは最後に1回発火した後、自動的に削除されます。これにより、忘れられたループが実行され続ける時間に制限がかかります。繰り返しタスクをより長く持続させる必要がある場合は、期限切れ前にキャンセルして再作成してください。

単発タスクはタイマーによる期限切れはありません。発火後に自動的に削除されるだけです。

cron 式リファレンス

CronCreate は標準の5フィールドcron式を受け入れます:分 時 日 月 曜日。すべてのフィールドはワイルドカード ()、単一値 (5)、ステップ (/15)、範囲 (1-5)、カンマ区切りリスト (1,15,30) をサポートします。

意味
*/5 * * * *5分ごと
0 * * * *毎時0分
7 * * * *毎時7分
0 9 * * *毎日9時(ローカルタイム)
0 9 * * 1-5平日9時(ローカルタイム)
30 14 15 3 *3月15日14時30分(ローカルタイム)

曜日は0または7が日曜日、6が土曜日です。日と曜日の両方が制約されている場合(どちらも*ではない)、いずれかのフィールドが一致すれば日付が一致します。これは標準のvixie-cronセマンティクスに従います。

L、W、?、および MON や JAN のような名前エイリアスなどの拡張構文はサポートされていません。

制限事項

セッションスコープのスケジューリングには固有の制約があります:

  • タスクはQwen Codeが実行中かつアイドル状態のときのみ発火します。ターミナルを閉じるかセッションを終了すると、すべてがキャンセルされます。
  • 見逃した発火のキャッチアップはありません。Qwen Code が長時間実行リクエストでビジー状態の間にタスクのスケジュール時刻が経過した場合、Qwen Code がアイドル状態になったときに1回だけ発火し、見逃した間隔ごとには発火しません。
  • 再起動後も永続化されません。Qwen Code を再起動すると、すべてのセッションスコープのタスクがクリアされます。
Last updated on