Үндсэн агуулга руу очих
LibraTool logoLibraTool

Cron илэрхийллийн барилгач — үнэгүй

Хуваарьт ажлуудад зориулсан cron илэрхийллүүдийг байгуулах, баталгаажуулах, тайлбарлах. Шууд энгийн хэл дэх тайлбар, дараагийн 5 ажиллалтын урьдчилан харалт болон нийтлэг хэлбэрийн урьдчилан тохируулгуудтай.

Ачаалагдсаны дараа офлайн ажилладаг
минут
(0-59)
цаг
(0-23)
өдөр
(1-31)
сар
(1-12)
гараг
(0-7)

Энгийн хэлээр

09:00 үед, Даваагаас баасан гараг хүртэл.

Нийтлэг загварууд

Стандарт Unix cron, GitHub Actions, Kubernetes CronJob болон ихэнх төлөвлөлтийн системтэй нийцтэй. * нь 'бүр', */5 нь 'бүр 5', 1-5 нь хэрчим, 1,15 нь тодорхой утгуудыг илэрхийлнэ. @hourly, @daily, @weekly, @monthly, @yearly, мөн MON-FRI эсвэл JAN-DEC гэх мэт нэрсийг хүлээн авч болно.

Түгээмэл хэрэглээ

  • GitHub Actions ажилын үйлдэлд Cron нэмэхGitHub Actions ажилд cron синтаксисыг ашигладаг. Таны хуваарь эндээс нэмээд баталгаажуулаарай.
  • Kubernetes CronJobs-д Cron нэмэхKubernetes CronJob нөөц нь стандарт cron синтаксисыг ашигладаг. Илэрхийлэлийг харааллаар нэмээд тайлбарлаарай.
  • Linux crontab-д Cron оруулгууд нэмэхУламжлалын Unix cron (cron, crontab -e)-д илэрхийлэлүүд нэмээд итгэлтэйтэй байг.
  • Өгөгдлийн сангийн засвал ажлыг хуваарилахCron илэрхийлэлийг ашиглан засварлах, үнэ цэнэ оруулах эсвэл анализ ажлуудыг итгэлтэйтэй хуваарилаарай.
  • Cron илэрхийлэл хэрхэн ажилладаг талаар сурууХоёрдугаар өөрчлөлт бүр англи хэл дээр тодорхой тайлбар болон дараа 5 үйлдэлийн урьдчилсан үзүүлэлтийг харуулдаг — cron сурахын хамгийн сайн арга.

Хэрхэн ажилладаг

cron илэрхийллийн бүтээгч бол lib/cron.ts дахь гараар бичсэн задлагч ашиглан бүхэлдээ таны хөтчид ажилладаг — гадаад номын сан, серверийн дуудлага хамааралгүй. Энэ нь илэрхийллийг шалгаж, хөтчийн байгуулагдмал Intl.DateTimeFormat, Intl.ListFormat API ашиглан бүс нутагт мэдрэмтгий өдөр, сарын нэртэй энгийн-Англи тайлбар угсарч, минут бүрийг гар хүчээр шалгахын оронд талбар-алгасах логикоор цагаар урагш алхаж дараагийн товлогдсон ажиллах цагийг тооцоолдог.

  1. 1
    Илэрхийлэл талбар-талбараар задарна
    Задлагч илэрхийллийг таван (эсвэл зургаан) хоосон зайгаар хязгаарлагдсан талбар болгон хувааж, тус бүрт таслал, муж (жишээ нь 1-5), алхмын тэмдэглэгээ (жишээ нь */15), MON эсвэл JAN гэх мэт нэрлэсэн утгыг tokenize хийдэг. @daily гэх мэт @macros задлалт эхлэхийн өмнө таван талбарын эквивалент руу өргөтгөгддөг. Хүчингүй утга эсвэл мужаас гарсан тоо нутагшуулсан мессежтэй харгалзах бичигдсэн алдааны түлхүүр болж гарч ирдэг.
  2. 2
    Хүн-унших боломжтой тайлбар угсарна
    lib/cron.ts дахь describeCron() аль талбар wildcard, аль нь тодорхой олонлог болохыг шалгаж Англи (эсвэл нутагшуулсан) өгүүлбэрийг бүтээдэг. Өдөр, сарын нэр идэвхтэй бүс нутгаар Intl.DateTimeFormat-аар шийдэгдэж, жагсаалтын зүйлс Intl.ListFormat ашиглан нэгтгэгддэг тул холбоос үг ('and' vs ',' vs бүс нутгийн онцгой хэлбэр) хэрэглэгчийн хэлтэй тохирдог.
  3. 3
    Дараагийн ажиллах цагууд талбар алгасалтайгаар тооцоологддог
    nextRuns() Date объектыг одоогийн мөчөөс урагш алхуулдаг ч минут бүрийг шалгахын оронд тохирохгүй бүхэл сар, өдөр, цагийг алгасдаг. Энэ нь 2-р сарын 30 гэх мэт боломжгүй хуваарийг 2.6 сая удаа давталгүйгээр таван жилийн хугацааны шалгалтаар хурдан гарган өгнө.
  4. 4
    Илэрхийлэл URL fragment-ээр хуваалцагдана
    Та бичсэн ямар ч илэрхийлэл хуудасны URL fragment-д #expr= болж бичигддэг (window.history.replaceState-ээр 500 мс debounce хийсэн). Fragment хэзээ ч серверт илгээгддэггүй; хуудас ачаалахдаа үүнээс сэргэдэг тул URL хуваалцах эсвэл хавчуурга хийх нь ямар ч серверийн state-гүйгээр яг л илэрхийллийг сэргээдэг.

Холбоотой хэрэгслүүд

Түгээмэл асуултууд