mastra.schedules
Ajouté dans : @mastra/core@1.50.0
mastra.schedules est le service CRUD des planifications cron persistantes. Utilisez-le pour créer, répertorier, mettre à jour, suspendre, reprendre, exécuter manuellement et supprimer les planifications des Agents ou des Workflows.
Pour découvrir les modèles d'utilisation et les concepts, consultez Schedules.
Exemple d'utilisationLien direct vers Exemple d'utilisation
Créez une planification d'Agent :
const schedule = await mastra.schedules.create({
agentId: 'pinger',
cron: '0 * * * *',
prompt: 'Give me a status update.',
})
Créez une planification de Workflow :
const schedule = await mastra.schedules.create({
workflowId: 'daily-report',
cron: '0 9 * * *',
inputData: { reportType: 'summary' },
})
Schedules nécessite un adaptateur de Storage qui implémente le domaine des planifications. Les adaptateurs pris en charge comprennent @mastra/libsql, @mastra/pg, @mastra/mysql, @mastra/mongodb, @mastra/convex et @mastra/spanner.
MéthodesLien direct vers Méthodes
Création de planificationsLien direct vers Création de planifications
create(input)Lien direct vers createinput
Crée une planification d'Agent ou de Workflow. Transmettez agentId pour créer une planification d'Agent, ou workflowId pour créer une planification de Workflow.
const schedule = await mastra.schedules.create({
agentId: 'pinger',
cron: '0 * * * *',
prompt: 'Give me a status update.',
})
Entrée d'une planification d'AgentLien direct vers Entrée d'une planification d'Agent
id?:
agent_<slug>. Lorsqu'elle est omise, Mastra génère un identifiant agent_<uuid>.agentId:
cron:
prompt:
name?:
timezone?:
America/New_York.threadId?:
agent.generate().resourceId?:
threadId est défini.signalType?:
notification.tagName?:
schedule.attributes?:
providerOptions?:
ifActive?:
threadId.ifIdle?:
threadId.metadata?:
status?:
active.Entrée d'une planification de WorkflowLien direct vers Entrée d'une planification de Workflow
id?:
schedule_<slug>. Lorsqu'elle est omise, Mastra génère un identifiant schedule_<uuid>.workflowId:
cron:
timezone?:
inputData?:
initialState?:
requestContext?:
metadata?:
status?:
active.Lecture des planificationsLien direct vers Lecture des planifications
get(id)Lien direct vers getid
Récupère une planification à partir de son identifiant. Les identifiants bruts des planifications d'Agents sont également résolus sous la forme normalisée agent_<slug>.
const schedule = await mastra.schedules.get('pinger')
list(filter?)Lien direct vers listfilter
Répertorie les planifications. Sans filtre, renvoie les planifications d'Agents et de Workflows.
const schedules = await mastra.schedules.list({
agentId: 'pinger',
status: 'active',
})
filter?:
agentId?:
workflowId?:
threadId?:
resourceId?:
name?:
status?:
Mise à jour des planificationsLien direct vers Mise à jour des planifications
update(id, patch)Lien direct vers updateid-patch
Met à jour une planification. La modification de cron ou timezone recalcule la prochaine heure de déclenchement. Le passage de status de paused à active la recalcule également.
const updated = await mastra.schedules.update('pinger', {
cron: '*/30 * * * *',
prompt: 'Give me a status update every 30 minutes.',
})
Les patchs de planifications d'Agents peuvent mettre à jour cron, timezone, prompt, name, signalType, tagName, attributes, providerOptions, ifActive, ifIdle, metadata et status. threadId et resourceId ne peuvent pas être modifiés par patch. Créez une nouvelle planification lorsque le fil cible doit changer.
Les patchs de planifications de Workflows peuvent mettre à jour cron, timezone, inputData, initialState, requestContext, metadata et status. Les champs de patch propres aux Agents, tels que prompt, signalType et ifIdle, lèvent une erreur sur les planifications de Workflows.
Cycle de vieLien direct vers Cycle de vie
pause(id)Lien direct vers pauseid
Suspend une planification. La suspension est durable et idempotente.
const paused = await mastra.schedules.pause('pinger')
resume(id)Lien direct vers resumeid
Reprend une planification suspendue et recalcule la prochaine heure de déclenchement à partir de l'heure actuelle.
const active = await mastra.schedules.resume('pinger')
run(id)Lien direct vers runid
Déclenche immédiatement une planification une fois, sans modifier sa cadence cron.
const run = await mastra.schedules.run('pinger')
Pour les planifications d'Agents, claimId utilise manual_<scheduleId>_<timestamp>. Pour les planifications de Workflows, claimId utilise sched_<scheduleId>_<timestamp> et est réutilisé comme identifiant du Run du Workflow.
delete(id)Lien direct vers deleteid
Supprime une planification. La suppression d'une planification inexistante ne fait rien.
await mastra.schedules.delete('pinger')
Comportement des planificationsLien direct vers Comportement des planifications
- Les identifiants des planifications d'Agents utilisent le préfixe
agent_. Ceux des planifications de Workflows créées au moyen demastra.schedules.create()utilisent le préfixeschedule_. - Les planifications d'Agents associées à un fil nécessitent
resourceIdlorsquethreadIdest défini. signalType,ifActive,ifIdleetresourceIdnécessitentthreadId.- Les planifications de Workflows n'acceptent pas les champs de patch propres aux Agents, tels que
prompt,signalTypeouifIdle. run()publie immédiatement un déclenchement manuel sans modifier la cadence cron stockée.