تحويل جدول cron إلى قائمة بمواعيد التشغيل القادمة
التعبير */20 9-10 * * 1-5 بعد الساعة 09:05 UTC يوم 27 يوليو 2026 يعمل في 09:20 و09:40 و10:00 و10:20. الصق تعبير cron ووقت البدء وعدد المرات المطلوبة لترى المواعيد القادمة بدقة. مجانية في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- تعبير Cron
- */20 9-10 * * 1-5
- الكمية
- 4
- وقت البدء
- 2026-07-27T09:05:00Z
- أوقات التنفيذ
- 2026-07-27T09:20:00Z, 2026-07-27T09:40:00Z, 2026-07-27T10:00:00Z, 2026-07-27T10:20:00Z
تعبير cron موجز، لكن مراجعته بصيغته المختصرة ليست سهلة دائماً. تحول هذه الإمكانية تعبير cron قياسياً من خمسة حقول إلى قائمة واضحة بمواعيد UTC القادمة بعد وقت البدء الذي تقدمونه حصراً. اختاروا عدد مرات التشغيل المطلوبة لتحصلوا على قيم ISO 8601 دقيقة قابلة للنسخ إلى الاختبارات أو أدلة التشغيل أو التذاكر أو مراجعات النشر. وتُرفض الحقول غير الصحيحة برسالة إدخال واضحة بدلاً من إنشاء جدول يبدو معقولاً وهو خاطئ.
حوّلوا صيغة cron الموجزة إلى مواعيد قابلة للمراجعة
يصف تعبير cron ذو الحقول الخمسة الدقائق والساعات وأيام الشهر والأشهر وأيام الأسبوع. وهذه الصيغة فعالة للآلات، لكن مراجع الجدول يحتاج غالباً إلى رؤية تواريخ فعلية قبل اعتماده. أدخلوا التعبير ووقت بدء ISO 8601 UTC غير مشمول وعدداً من 1 إلى 100.
تكرر النتيجة الطلب بعد ضبطه وتعيد أوقات التطابق التالية في قائمة مقروءة من طوابع زمنية تنتهي بحرف Z. وقت البدء غير مشمول؛ فإذا كان 09:00 تماماً وكان التعبير يعمل في 09:00، تكون أول نتيجة هي المرة المطابقة التالية. دقة cron دقيقة واحدة، ولذلك تكون الثواني صفراً في كل طابع معاد.
تدعم جميع الحقول القوائم والنطاقات الشاملة والمحارف البديلة والخطوات الموجبة. فمثلاً يختار */15 أربع نقاط في الساعة، بينما يختار 9-17/2 كل ساعتين داخل النطاق. ويمكن تمثيل يوم الأحد بالرقم 0 أو 7.
افهموا قواعد التقويم التي تحكم النتيجة
تستخدم جميع الحسابات التقويم الغريغوري الممتد وتوقيت UTC. ويمنع اشتراط طابع ينتهي بحرف Z أي تحويل خفي للمنطقة الزمنية قد ينقل التشغيل إلى تاريخ آخر أو إلى انتقال التوقيت الصيفي. تُحسب أطوال الأشهر والسنوات الكبيسة مباشرة، بما في ذلك قاعدة القرون: السنة القابلة للقسمة على 100 ليست كبيسة إلا إذا كانت قابلة للقسمة على 400 أيضاً.
تتبع مطابقة يوم الأسبوع سلوك cron المعتاد. عندما يكون يوم الشهر أو يوم الأسبوع محرفاً بديلاً، يتحكم الحقل المقيد في المطابقة. وعندما يكون كلاهما مقيداً، يكفي تطابق أحدهما.
لذلك يعني 0 9 1 * 1 الساعة 09:00 في أول يوم من كل شهر وكذلك في كل يوم اثنين، وليس أيام الاثنين التي توافق أول الشهر فقط. تُرتب مرات التشغيل زمنياً وتُولد بحسابات صحيحة حتمية، فتنتج المدخلات نفسها المخرجات نفسها بصرف النظر عن الجهاز أو المنطقة المحلية أو الساعة الحالية أو اللغة.
تحققوا من الجداول قبل نقلها إلى الإنتاج
استخدموا القائمة اختبار قبول صغيراً وملموساً للأتمتة. يستطيع مراجع النشر التأكد من أن مهمة أيام العمل لا تمتد إلى عطلة الأسبوع، ويستطيع فريق التشغيل نسخ نوافذ الصيانة القادمة إلى دليل، ويستطيع المطور تحويل الطوابع إلى بيانات اختبار للمجدول. يرفض المحلل أي تعبير لا يحتوي على خمسة حقول بالضبط.
كما يرفض عناصر القوائم الفارغة والنطاقات المعكوسة والخطوات الصفرية أو المشوهة والأرقام الخارجة عن الحدود. النطاقات المقبولة هي 0–59 للدقائق و0–23 للساعات و1–31 لأيام الشهر و1–12 للأشهر و0–7 لأيام الأسبوع. لا تقبل هذه الإمكانية أسماء الأشهر أو الأيام ولا حقول الثواني أو السنوات ولا وحدات مثل @daily ولا الامتدادات الخاصة بتنفيذ معين.
تختلف معاني هذه الصيغ بين محركات cron، وتخمينها يفسد غرض المعاينة.
حالات الاستخدام
مراجعة جدول نشر
وسعوا سلسلة cron إلى تواريخ UTC دقيقة قبل اعتماد مهمة إنتاج مجدولة.
إنشاء بيانات اختبار للمجدول
ولدوا طوابع زمنية متوقعة وثابتة لاختبارات الوحدات والتكامل من دون الاعتماد على الساعة الحالية.
إعداد دليل تشغيل
اعرضوا أوقات الصيانة أو التقارير القادمة بتنسيق يمكن نسخه مباشرة إلى وثائق التشغيل.
الأسئلة الشائعة
ما تنسيق cron المدعوم؟
تنسيق رقمي قياسي من خمسة حقول: الدقيقة والساعة ويوم الشهر والشهر ويوم الأسبوع، مع المحارف البديلة والقوائم والنطاقات والخطوات الموجبة.
هل يُضمّن وقت البدء؟
لا. وقت البدء غير مشمول، لذلك تُتخطى أي مرة مساوية له تماماً وتُعاد المرة المطابقة التالية.
ما المنطقة الزمنية المستخدمة؟
يُستخدم UTC فقط. قدموا طابع ISO 8601 ينتهي بحرف Z؛ وتنتهي جميع النتائج بالحرف نفسه.
كيف يُجمع يوم الشهر مع يوم الأسبوع؟
إذا كان كلاهما مقيداً، يكفي تطابق أحدهما. وإذا كان أحدهما محرفاً بديلاً، يتحكم الحقل الآخر في التاريخ.
ماذا يعني */15 في جدول cron؟
يعني كل 15 دقيقة، أي أربع مرات تشغيل في الساعة. وتعمل الخطوات على النطاقات أيضًا، فكتابة 9-17/2 في خانة الساعة تختار ساعة كل ساعتين بين التاسعة والخامسة مساءً.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/data/cron-to-readable \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"cron":"*/20 9-10 * * 1-5","count":4,"start_time":"2026-07-27T09:05:00Z"}'const res = await fetch("https://api.kit.forhosting.com/data/cron-to-readable", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"cron": "*/20 9-10 * * 1-5",
"count": 4,
"start_time": "2026-07-27T09:05:00Z"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/cron-to-readable",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"cron": "*/20 9-10 * * 1-5",
"count": 4,
"start_time": "2026-07-27T09:05:00Z"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/cron-to-readable", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"cron":"*/20 9-10 * * 1-5","count":4,"start_time":"2026-07-27T09:05:00Z"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"cron":"*/20 9-10 * * 1-5","count":4,"start_time":"2026-07-27T09:05:00Z"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/cron-to-readable", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"cron": "*/20 9-10 * * 1-5",
"count": 4,
"start_time": "2026-07-27T09:05:00Z"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.cron_to_readable",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_count | 100 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
تحققوا من الجداول قبل نقلها إلى الإنتاج
تكلف الأتمتة عبر API مبلغ $0.002 لكل طلب، ولا تستخدم الخوارزمية شبكة أو خدمة خارجية.
أسئلة تقنية
ماذا يحدث عند وجود حقل cron مشوه؟
يفشل الطلب بخطأ invalid_input يحدد الحقل المشوه أو النطاق غير الصالح.
ما تكلفة طلب API؟
يكلف كل طلب API مبلغ $0.002. ولا يستخدم الحساب الحتمي شبكة أو تخزيناً أو نموذجاً خارجياً.