Orbit
Orbit geplande taken
Cron jobs schedule recurring HTTP requests to your deployed project, so a nightly cleanup, an hourly sync or a weekly digest runs on time without you standing up a separate scheduler.
Cron jobs plannen terugkerende HTTP-verzoeken naar uw geïmplementeerde project in, zodat een nachtelijke opschoning, een uurlijkse synchronisatie of een wekelijkse samenvatting op tijd wordt uitgevoerd zonder dat u een aparte planner hoeft op te zetten.
Waar Cron Jobs Zich Bevinden
Open Orbit, klik op het project en kies Crons onder de groep Configure in het tabblad van het project. De pagina heet Cron jobs en beschrijft wat het doet: HTTP-verzoeken naar uw productie-implementatie plannen met behulp van standaard vijf-veld cron-syntaxis in UTC, of de aliassen @hourly, @daily, @weekly en @monthly.
De pagina toont de Target host die wordt aangeroepen, zodat u in één oogopslag kunt bevestigen dat deze naar de juiste implementatie verwijst.

Hoe Het Werkt
Orbit voert uw code niet uit in een planner. Het roept een URL op uw eigen project op een schema aan, en uw code doet het werk.
Dit betekent dat het wat u plant een normale route in uw toepassing is, bijvoorbeeld /api/cron/cleanup. Alles wat uw app als reactie op een verzoek kan doen, kan het volgens een schema doen.
Een Cron Job Maken
- Klik op New cron.
- Geef het een Name, tot 120 tekens.
- Stel het Path op uw project in, beginnend met een schuine streep.
- Kies een Schedule uit de voorinstellingen of typ een uitdrukking.
- Kies een Method.
GETis de standaard. - Voeg een Request body toe als de methode POST, PUT of PATCH is.
- Stel een Timeout in tussen 1 en 300 seconden. De standaard is 30.
- Laat de optie Generate a Bearer secret aangevinkt tenzij u uw eigen verificatie hebt.
- Klik op Create cron.
Schedule Voorinstellingen
| Voorinstelling | Uitdrukking |
|---|---|
| Elke 5 min | */5 * * * * |
| Elke 15 min | */15 * * * * |
| Elk uur | @hourly |
| Dagelijks 09:00 UTC | 0 9 * * * |
| Dagelijks middernacht | @daily |
| Wekelijks ma 09:00 | 0 9 * * 1 |
| Maandelijks 1e | @monthly |
Of schrijf uw eigen vijf-veld uitdrukking: minuut, uur, dag van de maand, maand, dag van de week.
Alle schema's staan in UTC, zonder zomertijdaanpassing. Een job ingesteld voor 0 9 * * * wordt het hele jaar om 9 uur UTC uitgevoerd, wat twee keer per jaar een uur afwijkt van de Nieuw-Zeelandse tijd. Als een job op een specifiek lokaal moment moet worden uitgevoerd, kies dan opzettelijk het UTC-uur en noteer welke helft van het jaar u hebt geoptimaliseerd.
De Aanroep Verifiëren
Als u de Bearer secret-optie aangevinkt laat, wordt een willekeurig token gegenereerd dat als Authorization header bij elke uitvoering wordt verzonden. Het wordt eenmaal weergegeven, onmiddellijk na aanmaak, met de opmerking dat het niet opnieuw zal worden weergegeven.
Kopieer het en controleer het in uw handler:
export async function GET(req) {
const auth = req.headers.get('authorization');
if (auth !== `Bearer ${process.env.CRON_SECRET}`) {
return new Response('Unauthorized', { status: 401 });
}
// do the work
}
Sla het geheim op met behulp van de omgevingsvariabelen van het project: zie Environment Variables in Orbit.
Zonder een controle als deze is uw cron-pad een openbare URL die iedereen zo vaak als ze willen kan aanroepen. Dat is prima voor iets onschadelijks en ernstig voor alles wat schrijft, e-mail verzendt of geld kost. Voeg de controle toe vóór de eerste keer uitvoeren, niet nadat iemand het eindpunt heeft gevonden.
U kunt ook uw eigen headers verzenden, als uw toepassing al een verificatieschema heeft.
De Joblijst Lezen
Elke job toont:
- Schedule, de uitdrukking waarop het wordt uitgevoerd.
- Next, wanneer het volgende keer wordt uitgevoerd.
- Last, wanneer het voor het laatst werd uitgevoerd en hoe dat ging.
- Een teller voor ok / fail.
- Last error, waar de meest recente storing een bericht achtergelaten heeft.
- Een PAUSED badge wanneer het is uitgeschakeld.
Vier acties bevinden zich in elke rij: Run now, Pause of Resume en Delete.
Run now voert de job onmiddellijk uit, ongeacht het schema, en rapporteert het resultaat. Dit is de juiste manier om een nieuwe job te testen in plaats van te wachten op de volgende tick.
Uitvoeringsresultaten
| Status | Betekenis |
|---|---|
| OK | Uw eindpunt retourneerde een succesvolle respons |
| FAILED | Uw eindpunt retourneerde een fout, of het verzoek kon niet worden gedaan |
| TIMEOUT | Uw eindpunt reageerde niet binnen de timeout |
| SKIPPED | De uitvoering werd niet uitgevoerd |
Elke uitvoering wordt vastgelegd met de status, antwoordcode, duur, fout en wat deze heeft geactiveerd, zodat een job die intermitterend mislukt een spoor achterlaat dat u kunt lezen in plaats van een enkele "last error".
Een Timeout Kiezen
De timeout is per uitvoering, tussen 1 en 300 seconden, standaard 30.
Stel het iets hoger in dan het werkelijke slechtste geval van de job, niet veel hoger. Een royale timeout op een job die is vastgelopen betekent vijf minuten van een builder die op niets wacht. Een strakke timeout op een job die terecht twee minuten duurt betekent een permanente mislukking en een misleidende waarschuwing.
Beter nog, hou de handler snel: laat hem werk in de wachtrij plaatsen en direct terugkeren, in plaats van het werk inline uit te voeren. Een cron job die in 200 milliseconden terugkeert, krijgt nooit een timeout.
Limieten
Een project kan tot 50 cron jobs bevatten. Dit is per project, dus een account met meerdere projecten heeft er in totaal meer.
Als u iets tegen staging in plaats van productie moet plannen, gebruikt u in plaats daarvan Cron triggers in Settings. Met die kaart kunt u de omgeving kiezen en is deze beperkt tot tien triggers per project. Zie Orbit Project Settings.
Een Job Verwijderen
Klik op Delete en bevestig. De bevestiging vermeldt dat de uitvoeringsgeschiedenis ook wordt verwijderd, dus als u een record wilt van hoe een job zich gedroeg, leg het vast voordat u verwijdert.
Pauzeer in plaats van verwijderen wanneer u een job tijdelijk stopt. Pauzeren houdt de configuratie, het geheim en de geschiedenis intact.
Praktisch Advies
Maak handlers idempotent. Een cron-aanroep kan opnieuw worden geprobeerd, en Run now kan worden ingedrukt terwijl een geplande uitvoering al aan de gang is. Uw handler moet kunnen omgaan met tweemaal uitvoering zonder het werk twee keer te doen.
Plan niet alles op het hele uur. 0 * * * * op elke job betekent dat elke job op hetzelfde moment concurreert. Verspreiding: 7 * * * *, 23 * * * * en ga zo maar door.
Log in uw handler. Het uitvoeringsrecord geeft u de antwoordcode en duur. Wat daadwerkelijk gebeurde is het zaakje van uw toepassing, en u wilt het wanneer een job stilzwijgend niets doet.
Probleemoplossing
Elke uitvoering is FAILED met een 401. Uw handler wijst het verzoek af. Controleer of het geheim dat is opgeslagen in uw omgevingsvariabelen, overeenkomt met het hier gegenereerde geheim, inclusief het Bearer voorvoegsel in de vergelijking.
Elke uitvoering is FAILED met een 404. Het pad bestaat niet op het geïmplementeerde project. Test het in een browser op de doelhost die op de pagina wordt weergegeven.
Uitvoering TIMEOUT. De handler doet te veel inline. Verdeel het werk, of verhoog de timeout als het werk echt zo lang duurt en geen runaway is.
Next gaat nooit vooruit. De job is gepauzeerd. Zoek naar de PAUSED badge.
De job wordt op het verkeerde moment uitgevoerd. Controleer UTC tegen uw lokale tijd. Dit is de meest voorkomende verrassing met geplande jobs.
Waar Te Gaan
- Environment Variables in Orbit voor het opslaan van het cron-geheim.
- Orbit Project Settings voor cron triggers per omgeving.
- Orbit Webhooks om op de hoogte te worden gesteld wanneer dingen fout gaan.