> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# 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](https://supastack.dev/nl/docs/web/before-you-start.md)

[Basisbeginselen van de terminal](https://supastack.dev/nl/docs/web/terminal-basics.md)

[Lokale webinstellingen](https://supastack.dev/nl/docs/web/ship-in-5-minutes.md)

[Agentprompts en projectgeheugen](https://supastack.dev/nl/docs/web/agents.md)

```
corepack pnpm jobs:tick
```


## Bewaar 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:tick
```


## Claims 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.

[Verzonden email.digest voorbeeld](https://supastack.dev/nl/docs/web/project-structure.md)

[Trigger.dev-uitvoering](https://supastack.dev/nl/docs/modules/jobs.md)


## 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.


## Volgende

[Transactionele e-mail](https://supastack.dev/nl/docs/modules/email.md)
