پرش به محتوای اصلی

سازنده عبارت Cron رایگان

عبارات cron برای وظایف زمان‌بندی‌شده را بسازید، اعتبارسنجی کنید و توضیح دهید. توضیح به زبان ساده، پیش‌نمایش ۵ اجرای بعدی و پیش‌تنظیم‌های الگوی رایج.

پس از بارگذاری آفلاین کار می‌کند
دقیقه
(0-59)
ساعت
(0-23)
روز
(1-31)
ماه
(1-12)
روز هفته
(0-7)

به زبان ساده

در ۰۹:۰۰, دوشنبه تا جمعه.

الگوهای رایج

با Unix cron استاندارد، GitHub Actions، Kubernetes CronJob و اکثر سیستم‌های زمان‌بندی سازگار است. * برای «هر»، */5 برای «هر ۵»، 1-5 برای بازه، 1,15 برای مقادیر مشخص. همچنین @hourly، @daily، @weekly، @monthly، @yearly را می‌پذیرد و نام‌هایی مانند MON-FRI یا JAN-DEC.

کاربردهای رایج

  • ساخت Cron برای GitHub Actions WorkflowsGitHub Actions از نحو cron برای گردش های کاری برنامه ریزی شده استفاده می کند. برنامه ریزی خود را اینجا بسازید و تأیید کنید.
  • ساخت Cron برای Kubernetes CronJobsمنابع Kubernetes CronJob از نحو cron استاندارد استفاده می کنند. بیان را به صورت تصویری بسازید و توضیح دهید.
  • ایجاد ورودی های Cron برای Linux crontabبرای cron Unix سنتی (cron, crontab -e) با اطمینان عبارات ایجاد کنید.
  • زمان بندی کارهای نگهداری پایگاه دادهکارهای پشتیبان گیری، خالی کردن یا تجزیه تحلیل را با اطمینان با استفاده از عبارات cron برنامه ریزی کنید.
  • یاد بگیرید که عبارات Cron چگونه کار می کنندهر تنظیم توضیحات واضح انگلیسی فوری و پیش نمایش 5 بار بعدی را نشان می دهد - بهترین راه برای یادگیری cron.

نحوه کار

سازنده عبارت cron کاملاً در مرورگر شما با یک تجزیه‌گر دست‌نویس در lib/cron.ts اجرا می‌شود — بدون کتابخانه خارجی، بدون تماس سروری. عبارت را اعتبارسنجی می‌کند، یک توضیح ساده به زبان انگلیسی با استفاده از APIهای داخلی Intl.DateTimeFormat و Intl.ListFormat مرورگر برای نام‌های روز و ماه لوکالیزیشن-آگاه می‌سازد، و زمان‌های اجرای برنامه‌ریزی‌شده بعدی را با پیمایش رو‌به‌جلو در زمان با منطق پرش-میدانی به‌جای امتحان هر دقیقه محاسبه می‌کند.

  1. 1
    عبارت میدان-به-میدان تجزیه شد
    تجزیه‌گر عبارت را به پنج (یا شش) میدان جداشده با فاصله تقسیم می‌کند و هر کدام را برای کاما، بازه‌ها (مثلاً ۱-۵)، نماد گام (مثلاً */۱۵)، و مقادیر نام‌دار مانند MON یا JAN توکنایز می‌کند. @ماکروهایی مانند @daily پیش از شروع تجزیه به معادل‌های پنج‌میدانی خود گسترش می‌یابند. مقادیر نامعتبر یا اعداد خارج-از-محدوده به‌عنوان کلیدهای خطای تایپ‌شده که به پیام‌های لوکالیزه نگاشت می‌شوند ظاهر می‌شوند.
  2. 2
    توضیح خوانا-برای-انسان ساخته شد
    describeCron() در lib/cron.ts جمله انگلیسی (یا لوکالیزه) را با بررسی اینکه کدام میدان‌ها کاراکتر-عام هستند در برابر مجموعه‌های صریح می‌سازد. نام‌های روز و ماه از طریق Intl.DateTimeFormat با لوکال فعال حل می‌شوند، و آیتم‌های لیست با استفاده از Intl.ListFormat به هم متصل می‌شوند تا حرف ربط ('و' در برابر ',' یا فرم لوکال-خاص) با زبان کاربر مطابقت داشته باشد.
  3. 3
    زمان‌های اجرای بعدی با پرش-میدانی محاسبه شدند
    nextRuns() یک شیء Date را از لحظه فعلی رو‌به‌جلو می‌پیماید، اما ماه‌ها، روزها، یا ساعت‌های کاملی که نمی‌توانند مطابقت داشته باشند را به‌جای امتحان هر دقیقه رد می‌کند. این یعنی یک برنامه غیرممکن مانند ۳۰ فوریه به‌سرعت از یک بررسی افق پنج‌ساله خارج می‌شود به‌جای ۲٫۶ میلیون بار حلقه‌زدن.
  4. 4
    عبارت از طریق fragment URL به اشتراک گذاشته شد
    هر عبارتی که تایپ می‌کنید در fragment URL صفحه به‌صورت #expr= نوشته می‌شود (با debounce ۵۰۰ میلی‌ثانیه‌ای از طریق window.history.replaceState). fragment هرگز به سروری ارسال نمی‌شود؛ صفحه هنگام بارگذاری از آن هیدراته می‌شود، پس به اشتراک‌گذاری یا نشان‌گذاری یک URL عبارت دقیق را بدون هیچ حالت سروری بازمی‌گرداند.

ابزارهای مرتبط

سؤالات متداول