Slaan oor na hoofinhoud
LibraTool logoLibraTool

Gratis Cron-uitdrukking-bouder

Bou, bekragtig en verduidelik cron-uitdrukkings vir geskeduleerde take. Regstreekse plain-Engelse beskrywing, volgende-5-lopies voorskou, en algemene patroonvoorinstellings.

Werk vanlyn sodra gelaai
minuut
(0-59)
uur
(0-23)
dag
(1-31)
maand
(1-12)
weekdag
(0-7)

In eenvoudige taal

By 09:00, Maandag tot Vrydag.

Algemene patrone

Versoenbaar met standaard Unix cron, GitHub Actions, Kubernetes CronJob, en die meeste skeduleringstelsels. Gebruik * vir 'elke', */5 vir 'elke 5', 1-5 vir reekse, 1,15 vir spesifieke waardes. Aanvaar ook @hourly, @daily, @weekly, @monthly, @yearly, en name soos MON-FRI of JAN-DEC.

Algemene gebruike

  • Bou Cron vir GitHub Actions-werkstromeGitHub Actions gebruik cron-sintaksis vir geskeduleerde werkstrome. Bou en verifieer u tabel hier.
  • Bou Cron vir Kubernetes CronJobsKubernetes CronJob-hulpbronne gebruik standaard cron-sintaksis. Bou en verduidelik die uitdrukking visueel.
  • Bou Cron-inskrywings vir Linux crontabBou uitdrukkings vir tradisionele Unix-kroon (kroon, crontab -e) met vertroue.
  • Skedule databasisonderhoudstakeSkedule rugsteun, vakuum of analiseer take met vertroue deur cron-uitdrukkings te gebruik.
  • Leer hoe Cron-uitdrukkings werkElke verstelsel toon onmiddellike duidelike Engelse verduideliking en n voorskou van die volgende 5 lopies — die beste manier om kroon te leer.

Hoe dit werk

Die cron-uitdrukking-bouer loop heeltemal in jou blaaier met 'n handgeskrewe ontleder in lib/cron.ts — geen eksterne biblioteek, geen bedienerbelling nie. Dit bekragtig die uitdrukking, stel 'n gewone-Engelse (of gelokaliseerde) beskrywing saam met die blaaier se ingeboude Intl.DateTimeFormat- en Intl.ListFormat-API's vir omgewing-bewuste dag- en maandname, en bereken die volgende geskeduleerde looptye deur vorentoe deur tyd te stap met veld-oorslaan-logika eerder as om elke minuut brute-krag te toets.

  1. 1
    Uitdrukking veld-vir-veld ontleed
    Die ontleder verdeel die uitdrukking in vyf (of ses) spasie-geskeide velde en tokeniseer elkeen vir kommas, reekse (bv. 1-5), stapnotasie (bv. */15), en genoemde waardes soos MON of JAN. @makro's soos @daily word na hul vyf-veld-ekwivalente uitgevou voordat ontleding begin. Ongeldige waardes of buite-reeks-getalle verskyn as getipeerde foutsleutels wat na gelokaliseerde boodskappe karteer.
  2. 2
    Menslik-leesbare beskrywing saamgestel
    describeCron() in lib/cron.ts bou die Engelse (of gelokaliseerde) sin deur te inspekteer watter velde jokertekens teenoor eksplisiete stelle is. Dag- en maandname word deur Intl.DateTimeFormat met die aktiewe omgewing opgelos, en lysitems word saamgevoeg met Intl.ListFormat sodat die voegwoord ('en' teenoor ',' teenoor omgewing-spesifieke vorm) by die gebruiker se taal pas.
  3. 3
    Volgende looptye met veld-oorslaan bereken
    nextRuns() stap 'n Date-objek vorentoe vanaf die huidige oomblik, maar slaan hele maande, dae, of ure oor wat nie kan pas nie eerder as om elke minuut te toets. Dit beteken 'n onmoontlike skedule soos Feb 30 verlaat vinnig deur 'n vyfjaar-horison-kontrole eerder as om 2.6 miljoen keer te loop.
  4. 4
    Uitdrukking gedeel via die URL-fragment
    Enige uitdrukking wat jy tik word na die bladsy se URL-fragment as #expr= geskryf ('n 500 ms-vertraging via window.history.replaceState). Die fragment word nooit na 'n bediener gestuur nie; die bladsy hidreer daarvandaan by laai, dus herstel om 'n URL te deel of te boekmerk die presiese uitdrukking sonder enige bedienertoestand.

Verwante gereedskap

Gereelde vrae