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 /nl/docs/modules/schedules.md (or send Accept: text/markdown).
Geplande taken
Terugkerend werk per workspace via de schedule-actions.
Walkthrough voor beginners
Vereisten: Lees de twee onderstaande beginnershandleidingen, voltooi de lokale webconfiguratie en open deze monorepo in de root van uw editor. Webinstellingen horen thuis in apps/web/.env.local; Next.js leest de root .env niet. /dashboard in de standaard nepmodus is een demo zonder database; /auth heeft een gemigreerde database nodig.
Korte termen: een werkruimte bestaat uit de afzonderlijke gebruikers, gegevens en instellingen van één team. De server is de vertrouwde backend; houd providersleutels uit de browser- en telefooncode. Een migratie is een versiebeheer van de database, waarbij tabellen worden gemaakt of bijgewerkt. Een AI-model is de motor die antwoord geeft; de modelcatalogus is de serverlijst met beschikbare model-ID's en prijzen. Een provider is een externe service, zoals een AI-, e-mail- of factureringsservice. Een recht is een subsidie waarmee een werkruimte een functie kan gebruiken. Een webhook is een bericht dat de ene service naar de URL van een andere service verzendt.
1. Open Settings → Developers en gebruik de besturingselementen Schema's om een testtaak te maken met een UTC-runtime.
2. Houd de app actief en maak dezelfde server-only SCHEDULER_TICK_SECRET beschikbaar voor de app en terminal; voer de onderstaande opdracht uit vanuit de root van de repository.
3. Bevestig de voortgang van de geplande tijd en de taak bereikt zijn eigen status. Als er niets wordt uitgevoerd, controleer dan de UTC-tijd, plannerprovider en serverlogboeken; Plak het geheim nooit in de chat.
Voor aangepaste code begint u met de meegeleverde prompts/README.md en kopieert u de dichtstbijzijnde prompt: prompts/new-app-screen.md voor een app-scherm of prompts/new-landing-page.md voor een openbare pagina. Voor server-, database- of providerwerk geeft u uw codeeragent de taak van deze handleiding en vraagt u hem om AGENTS.md, .ai/PROJECT_CONTEXT.md en overeenkomende .ai/-mirrors te lezen; inspecteer de exacte bronbestanden die hier worden genoemd; maak een lijst van bestanden en controleer deze voordat u deze bewerkt; behoud van het eigendom van de werkruimte en geheimen voor de server; en laat je het verschil zien. Vertel het gewenste gedrag, invoer- en uitvoervelden, toegestane rollen, verwacht succes en fouten, en het testaccount, de provider of het apparaat. Gebruik voorbeeldwaarden; plak nooit een echt geheim.
- Voordat u begint
- Basisbeginselen van de terminal
- Lokale webinstellingen
- Agentprompts en projectgeheugen
corepack pnpm jobs:tickBewaar terugkerend werk in de database
Bij het plannen van instellingen worden het taaktype en de cron-regel opgeslagen in werkruimtegerichte job_schedule-rijen. Cron-velden worden geëvalueerd in UTC. createDrizzleJobScheduler.claimDueSchedules claimt de verschuldigde rijen met behulp van FOR UPDATE SKIP LOCKED, gaat verder met de volgende run en stuurt vervolgens handlers.
De generieke JobRunner belooft wachtrij/status/annuleren. Herhaling hoort bij planningsrijen; De semantiek van de Trigger.dev-workflow blijft expliciet.
Rijplanner tikt
Stel een server-only SCHEDULER_TICK_SECRET in om POST /api/internal/scheduler-tick in te schakelen. corepack pnpm jobs:tick noemt het voor dev/CI; afwezige configuratie retourneert 404. Onder JOB_PROVIDER=trigger stuurt de geïmplementeerde scheduler.tick cron de planner aan.
# Against a running local app, with SCHEDULER_TICK_SECRET configured:
corepack pnpm jobs:tickClaims en uitvoering afzonderlijk verifiëren
Test overlappende ticks, regels voor vervallen/niet-vervallen, uitgeschakelde rijen, handlerfouten, annuleringen en de planning van een andere werkruimte. Claim/voorschot en voltooiing van de opdracht afzonderlijk inspecteren; een geclaimde rij is geen bewijs van voltooid werk.
Setup en configuratie
Gepland werk — digests, opruimingen, verlengingen — loopt via schedule-actions in plaats van ad-hoc timers: listWorkspaceSchedules, upsertScheduleAction en removeScheduleAction beheren de cron-gedreven taken van een workspace.
Een schedule benoemt de taak, de cron-expressie en de workspace waaronder hij draait. De worker resolvt context op runtime, dus een gepauzeerde of verwijderde schedule stopt met werk produceren zonder herdeploy.
listWorkspaceSchedules()
upsertScheduleAction({ task, cron })
removeScheduleAction(formData)Implementatieworkflow
Behandel elke geplande run als onvertrouwde invoer: resolv workspace en entitlement opnieuw binnen de run, want de staat kan sinds registratie zijn veranderd. Maak de taak idempotent — een opnieuw geprobeerde of dubbel afgevuurde run mag effecten niet dupliceren.
Schedules zijn operationeel oppervlak: houd ze zichtbaar in settings of logs zodat een vastgelopen of weggelopen schedule wordt gevonden voordat gebruikers het merken.
Verificatie en probleemoplossing
Vuur de schedule handmatig af in een sandbox, pauzeer hem, verifieer dat een uitgeschakelde workspace stopt met runs produceren en bevestig dat een dubbel afvuren één effect produceert. Houd cron-expressies in beheerde configuratie, niet verspreid door taskcode.