mastra.schedules
追加バージョン: @mastra/core@1.50.0
mastra.schedules は、永続化された cron schedules の CRUD サービスです。Agent または Workflow の schedules を作成、一覧取得、更新、一時停止、再開、手動実行、削除できます。
使用パターンと概念については、Schedulesを参照してください。
使用例使用例への直接リンク
Agent schedule を作成します。
const schedule = await mastra.schedules.create({
agentId: 'pinger',
cron: '0 * * * *',
prompt: 'Give me a status update.',
})
Workflow schedule を作成します。
const schedule = await mastra.schedules.create({
workflowId: 'daily-report',
cron: '0 9 * * *',
inputData: { reportType: 'summary' },
})
Schedules には、schedules ドメインを実装したストレージアダプターが必要です。対応するアダプターには、@mastra/libsql、@mastra/pg、@mastra/mysql、@mastra/mongodb、@mastra/convex、@mastra/spanner があります。
メソッドメソッドへの直接リンク
Schedules の作成Schedules の作成への直接リンク
create(input)createinputへの直接リンク
Agent または Workflow の schedule を作成します。Agent schedule を作成するには agentId、Workflow schedule を作成するには workflowId を渡します。
const schedule = await mastra.schedules.create({
agentId: 'pinger',
cron: '0 * * * *',
prompt: 'Give me a status update.',
})
Agent schedule の入力Agent schedule の入力への直接リンク
id?:
agent_<slug> に正規化されます。省略すると、Mastra が agent_<uuid> ID を生成します。agentId:
cron:
prompt:
name?:
timezone?:
America/New_York など)。threadId?:
agent.generate() によりスレッドなしで動作します。resourceId?:
threadId を設定する場合は必須です。signalType?:
notification です。tagName?:
schedule です。attributes?:
providerOptions?:
ifActive?:
threadId が必要です。ifIdle?:
threadId が必要です。metadata?:
status?:
active です。Workflow schedule の入力Workflow schedule の入力への直接リンク
id?:
schedule_<slug> に正規化されます。省略すると、Mastra が schedule_<uuid> ID を生成します。workflowId:
cron:
timezone?:
inputData?:
initialState?:
requestContext?:
metadata?:
status?:
active です。Schedules の取得Schedules の取得への直接リンク
get(id)getidへの直接リンク
ID で schedule を取得します。プレフィックスのない Agent schedule ID も、正規化された agent_<slug> 形式として解決されます。
const schedule = await mastra.schedules.get('pinger')
list(filter?)listfilterへの直接リンク
Schedules の一覧を取得します。filter を指定しない場合、Agent と Workflow の schedules を返します。
const schedules = await mastra.schedules.list({
agentId: 'pinger',
status: 'active',
})
filter?:
agentId?:
workflowId?:
threadId?:
resourceId?:
name?:
status?:
Schedules の更新Schedules の更新への直接リンク
update(id, patch)updateid-patchへの直接リンク
Schedule を更新します。cron または timezone を変更すると、次回の実行時刻が再計算されます。status を paused から active に更新した場合も、次回の実行時刻が再計算されます。
const updated = await mastra.schedules.update('pinger', {
cron: '*/30 * * * *',
prompt: 'Give me a status update every 30 minutes.',
})
Agent schedule の patch では、cron、timezone、prompt、name、signalType、tagName、attributes、providerOptions、ifActive、ifIdle、metadata、status を更新できます。threadId と resourceId は patch できません。対象スレッドを変更する場合は、新しい schedule を作成してください。
Workflow schedule の patch では、cron、timezone、inputData、initialState、requestContext、metadata、status を更新できます。prompt、signalType、ifIdle など Agent 専用の patch フィールドを Workflow schedule に指定するとエラーがスローされます。
ライフサイクルライフサイクルへの直接リンク
pause(id)pauseidへの直接リンク
Schedule を一時停止します。一時停止は永続的かつ冪等です。
const paused = await mastra.schedules.pause('pinger')
resume(id)resumeidへの直接リンク
一時停止中の schedule を再開し、現在時刻から次回の実行時刻を再計算します。
const active = await mastra.schedules.resume('pinger')
run(id)runidへの直接リンク
cron の実行間隔を変更せず、schedule を即座に1回実行します。
const run = await mastra.schedules.run('pinger')
Agent schedules の claimId は manual_<scheduleId>_<timestamp> 形式です。Workflow schedules の claimId は sched_<scheduleId>_<timestamp> 形式で、Workflow の run ID として再利用されます。
delete(id)deleteidへの直接リンク
Schedule を削除します。存在しない schedule を削除しても何も起こりません。
await mastra.schedules.delete('pinger')
Schedule の動作Schedule の動作への直接リンク
- Agent schedule ID には
agent_プレフィックスを使用します。mastra.schedules.create()で作成した Workflow schedule ID にはschedule_プレフィックスを使用します。 - スレッド付き Agent schedules で
threadIdを設定する場合は、resourceIdが必要です。 signalType、ifActive、ifIdle、resourceIdにはthreadIdが必要です。- Workflow schedules は、
prompt、signalType、ifIdleなど Agent 専用の patch フィールドを受け付けません。 run()は手動実行を即座に発行し、保存されている cron の実行間隔は変更しません。