Ndërtues Shprehjesh Cron Falas

Ndërtoni, verifikoni dhe shpjegoni shprehje cron për detyra të planifikuara. Përshkrim i drejtpërdrejtë në anglisht të thjeshtë, parashikim i 5 ekzekutimeve të ardhshme dhe preseta modelesh të zakonshme.

Funksionon jashtë linje sapo ngarkohet
minutë
(0-59)
orë
(0-23)
ditë
(1-31)
muaj
(1-12)
ditë jave
(0-7)

Në gjuhë të thjeshtë

Në 9:00 p.d., E hënë deri të premte.

Modele të zakonshme

I përputhshëm me Unix cron standard, GitHub Actions, Kubernetes CronJob dhe shumicën e sistemeve të planifikimit. Përdor * për 'çdo', */5 për 'çdo 5', 1-5 për intervale, 1,15 për vlera specifike. Pranon gjithashtu @hourly, @daily, @weekly, @monthly, @yearly, dhe emra si MON-FRI ose JAN-DEC.

Si funksionon

Ndërtuesi i shprehjeve cron funksionon tërësisht në shfletuesin tënd duke përdorur një analizues të shkruar me dorë në lib/cron.ts — pa bibliotekë të jashtme, pa thirrje serveri. Validon shprehjen, monton një përshkrim në anglishte të thjeshtë duke përdorur API-të e integruara Intl.DateTimeFormat dhe Intl.ListFormat të shfletuesit për emra ditësh dhe muajsh të vetëdijshëm për gjuhën, dhe llogarit kohët e ardhshme të planifikuara duke ecur përpara në kohë me logjikë kapërcimi fushash në vend që të provojë me forcë çdo minutë.

  1. 1
    Shprehja e analizuar fushë pas fushe
    Analizuesi e ndan shprehjen në pesë (ose gjashtë) fusha të ndara me hapësirë dhe e ndan secilën në shenja për presje, intervale (p.sh. 1-5), shënim hapi (p.sh. */15), dhe vlera të emërtuara si MON ose JAN. @makrot si @daily zgjerohen te ekuivalentët e tyre me pesë fusha para se të fillojë analizimi. Vlerat e pavlefshme ose numrat jashtë intervalit shfaqen si çelësa gabimesh të tipizuar që hartohen te mesazhe të lokalizuara.
  2. 2
    Përshkrim i lexueshëm nga njeriu montuar
    describeCron() në lib/cron.ts e ndërton fjalinë angleze (ose të lokalizuar) duke inspektuar cilat fusha janë të thelluara (wildcard) kundrejt bashkësive eksplicite. Emrat e ditëve dhe muajve zgjidhen përmes Intl.DateTimeFormat me gjuhën aktive, dhe elementet e listës bashkohen duke përdorur Intl.ListFormat kështu që lidhëza ('dhe' kundrejt ',' apo formës specifike të gjuhës) përputhet me gjuhën e përdoruesit.
  3. 3
    Kohët e ardhshme të xhirimit llogariten me kapërcim fushash
    nextRuns() e lëviz një objekt Date përpara nga momenti aktual, por kapërcen tërë muajt, ditët, ose orët që nuk mund të përputhen në vend që të testojë çdo minutë. Kjo do të thotë që një orar i pamundur si 30 shkurti del shpejt përmes një kontrolli horizonti pesë-vjeçar në vend që të lakohet 2.6 milionë herë.
  4. 4
    Shprehja ndahet përmes fragmentit të URL-së
    Çdo shprehje që shkruan shkruhet te fragmenti i URL-së së faqes si #expr= (i vonuar 500 ms përmes window.history.replaceState). Fragmenti nuk dërgohet kurrë te një server; faqja hidratohet nga ai gjatë ngarkimit, kështu që ndarja ose ruajtja si faqerojtës e një URL-je e rikthen shprehjen e saktë pa asnjë gjendje serveri.

Mjete të ngjashme

Pyetjet e bëra më shpesh