Cron-jobs
Cron-jobs samler alle planlagte job på tværs af alle apps i Simulant — dem der sender fakturaer hver dag, dem der oprydder gamle FI-kort hver time, dem der genberegner statistikker hver nat.
Siden er kun synlig for superadmins. Den er primært til drift og fejlsøgning: er noget stoppet med at køre, så starter du her.

Hvad du ser
Stat-kort øverst:
- Apps — antal apps der svarer på cron-discovery.
- Cron-jobs — totalt antal jobs på tværs af alle apps + hvor mange er aktive.
- Status — antal jobs der fejlede ved seneste kørsel. 0 (grøn) er det du gerne vil se.
App-sektioner — én pr. app. Hver sektion viser:
- App-navn med farvet badge.
- Link til appens URL.
- Antal cron-jobs i appen, eller en fejlmeddelelse hvis appen ikke har discovery-endpoint.
Cron-job-kort under hver app:
- Navn og slug for jobbet.
- HTTP-metode (typisk GET eller POST).
- Schedule — fx
0 3 * * *med en menneskelig forklaring ("dagligt kl. 03"). - Beskrivelse af hvad jobbet gør.
- URL — den fulde URL en ekstern scheduler skal kalde.
- Scheduled Task — wget-kommando klar til at kopiere ind i en ekstern cron-tjeneste.
- Sidste status, antal kørsler, antal fejl — så du kan se om jobbet faktisk kører.
Sådan opsætter du en cron eksternt
Simulant-apps har ikke indbygget scheduler. De eksponerer endpoints som en ekstern tjeneste skal kalde efter en plan. Typiske valg er cron-job.org, EasyCron eller GitHub Actions.
Eksempel med cron-job.org:
- Find jobbet i tabellen — fx "Daily invoice send" på Expense.
- Kopiér URL'en (med
?secret=YOUR_CRON_SECRETudskiftet med den rigtige secret fra appen). - Opret en cronjob på cron-job.org → indsæt URL'en.
- Sæt schedule til værdien i kolonnen Schedule (fx
0 3 * * *). - Aktivér "Notify on failure" så du får email hvis jobbet fejler.
- Test med "Test run" — skal returnere 200.
Status
For hvert job vises sidste kørsels status:
- ok (grøn) — jobbet svarede 2xx ved seneste kørsel.
- fejl (rød) — sidste kørsel fejlede. Klik kortet, eller se fejlmeddelelsen direkte i kortet.
- kører… (gul) — jobbet er i gang.
- — (grå) — jobbet er aldrig kørt, eller status er ukendt.
Tæller-rækken under viser totaler: X kørsler · Y ok · Z fejl.
Tips
- Manglende cron-jobs? Hvis en app ikke svarer på discovery, vises "ingen discovery-endpoint" — det er fint, det betyder bare at appen ikke har planlagte jobs.
- Job kører ikke selvom det står som aktivt — Console viser kun jobbet som "kender til" — den kalder det ikke selv. Det er den eksterne scheduler der skal kalde URL'en.
- Sikkerhed — hvert job har sit eget
CRON_SECRET. Del aldrig URL'en med secret'en på offentlige steder. - Hvis et job pludselig fejler — tjek den seneste fejl-meddelelse, og gå til den pågældende app for at se logs.
Når noget ikke virker
- Et job står som "deaktiveret" — appen har slået jobbet fra. Det kalder ingen — heller ikke selvom du opretter en scheduler. Find årsagen i appen.
- Sidste status er "fejl" og fejl-meddelelse vises rød — tjek meddelelsen for hint. Fælles årsager: forkert secret, ressource ikke fundet, tidsudløb.
- App siger "ingen discovery-endpoint" — appen er ikke opdateret til at understøtte cron-discovery. Det er ikke en fejl — du kan stadig opsætte cron-jobs manuelt hvis du har dokumentationen.
- Total kørsler stiger ikke — den eksterne scheduler kalder ikke endpointet. Tjek schedule, secret og URL i den eksterne tjeneste.