ক্রন এক্সপ্রেশনগুলো দেখতে এলোমেলো সংখ্যা এবং তারকা চিহ্নের মতো, কিন্তু এগুলো ইন্টারনেট জুড়ে লক্ষ লক্ষ নির্ধারিত কাজ কখন চলবে তা নিয়ন্ত্রণ করে। আপনি একটি ব্যাকআপ স্ক্রিপ্ট সেট আপ করুন, ইমেইল রিপোর্ট শিডিউল করুন, অথবা CI/CD পাইপলাইন কনফিগার করুন -- ক্রন বোঝা অপরিহার্য। এই টিউটোরিয়ালটি আমাদের বিনামূল্যের ক্রন পার্সার ব্যবহার করে সহজ করে তোলে।
আপনার যা প্রয়োজন
- ডিকোড করার জন্য একটি ক্রন এক্সপ্রেশন, অথবা ক্রন হিসেবে প্রকাশ করতে চান এমন একটি সময়সূচী
- একটি ওয়েব ব্রাউজার (Chrome, Firefox, Safari, অথবা Edge)
- কোনো অ্যাকাউন্ট বা ইনস্টলেশনের প্রয়োজন নেই
ধাপে ধাপে নির্দেশিকা
একটি ক্রন এক্সপ্রেশন লিখুন
ক্রন পার্সার টুল খুলুন। ইনপুট ফিল্ডে একটি ক্রন এক্সপ্রেশন টাইপ বা পেস্ট করুন। উদাহরণস্বরূপ, 0 9 * * 1 লিখে দেখুন। টুলটি তৎক্ষণাৎ এটি পার্স করে এবং সরল ভাষায় এর অর্থ দেখায়।
মানব-বান্ধব ফলাফল পড়ুন
পার্সার এক্সপ্রেশনটিকে একটি স্পষ্ট বিবরণে অনুবাদ করে। 0 9 * * 1 এর জন্য, আপনি দেখবেন "প্রতি সোমবার সকাল ০৯:০০ টায়।" টুলটি পরবর্তী নির্ধারিত রান টাইমও দেখায় যাতে আপনি যাচাই করতে পারেন সময়সূচী আপনার প্রত্যাশা অনুযায়ী কাজ করছে কিনা।
সমন্বয় করুন এবং পরীক্ষা করুন
এক্সপ্রেশন পরিবর্তন করুন এবং রিয়েল টাইমে বিবরণ আপডেট হতে দেখুন। একটি সংখ্যা পরিবর্তন করুন, একটি তারকা চিহ্নের বদলে একটি মান দিন, অথবা একটি পরিসর যোগ করুন। এই তাৎক্ষণিক প্রতিক্রিয়া ক্রন সিনট্যাক্স শেখার এবং আপনার প্রয়োজনীয় সঠিক সময়সূচী তৈরির দ্রুততম উপায়।
জেনে রাখুন ক্রন এক্সপ্রেশনে সাধারণত পাঁচটি ফিল্ড থাকে: মিনিট, ঘণ্টা, মাসের দিন, মাস এবং সপ্তাহের দিন। কিছু সিস্টেম সেকেন্ডের জন্য ষষ্ঠ ফিল্ড যোগ করে, তবে পাঁচ ফিল্ডই স্ট্যান্ডার্ড।
পাঁচটি ফিল্ড বোঝা
একটি ক্রন এক্সপ্রেশন স্পেস দ্বারা পৃথক পাঁচটি ফিল্ড দিয়ে গঠিত:
┌───────────── মিনিট (0-59)
│ ┌───────────── ঘণ্টা (0-23)
│ │ ┌───────────── মাসের দিন (1-31)
│ │ │ ┌───────────── মাস (1-12)
│ │ │ │ ┌───────────── সপ্তাহের দিন (0-7, যেখানে 0 এবং 7 হলো রবিবার)
│ │ │ │ │
* * * * *
একটি তারকা চিহ্ন * মানে "প্রতি।" একটি সংখ্যা মানে "ঠিক এই মানে।" এটাই ভিত্তি -- বাকি সবকিছু এর উপর তৈরি।
সাধারণ ক্রন প্যাটার্ন
এখানে সেই প্যাটার্নগুলো যেগুলো আপনি সবচেয়ে বেশি ব্যবহার করবেন। ব্যাখ্যা এবং যাচাই দেখতে এগুলোর যেকোনোটি ক্রন পার্সার-এ টাইপ করুন:
| এক্সপ্রেশন | অর্থ |
|---|---|
* * * * * |
প্রতি মিনিটে |
0 * * * * |
প্রতি ঘণ্টায় (মিনিট 0 তে) |
0 9 * * * |
প্রতিদিন সকাল ৯:০০ টায় |
0 9 * * 1 |
প্রতি সোমবার সকাল ৯:০০ টায় |
0 9 * * 1-5 |
কর্মদিবসে সকাল ৯:০০ টায় |
0 0 1 * * |
প্রতি মাসের প্রথম দিন মধ্যরাতে |
0 */6 * * * |
প্রতি ৬ ঘণ্টায় |
30 8 * * 1,3,5 |
সোমবার, বুধবার, শুক্রবার সকাল ৮:৩০ টায় |
0 0 * * 0 |
প্রতি রবিবার মধ্যরাতে |
*/15 * * * * |
প্রতি ১৫ মিনিটে |
পরামর্শ স্টেপ সিনট্যাক্স */n মানে "প্রতি n ব্যবধানে।" তাই মিনিট ফিল্ডে */15 মানে প্রতি ১৫ মিনিটে (প্রতি ঘণ্টার ০, ১৫, ৩০ এবং ৪৫ মিনিটে)। সপ্তাহের দিন ফিল্ডে রেঞ্জ সিনট্যাক্স 1-5 মানে সোমবার থেকে শুক্রবার।
বিশেষ অক্ষরের ব্যাখ্যা
| অক্ষর | অর্থ | উদাহরণ |
|---|---|---|
* |
প্রতিটি মান | * * * * * = প্রতি মিনিটে |
, |
একাধিক মান | 0 9,17 * * * = সকাল ৯ টায় এবং বিকাল ৫ টায় |
- |
মানের পরিসর | 0 9 * * 1-5 = কর্মদিবস |
/ |
স্টেপ ব্যবধান | */10 * * * * = প্রতি ১০ মিনিটে |
নিজের এক্সপ্রেশন তৈরি করা
শূন্য থেকে একটি ক্রন এক্সপ্রেশন তৈরি করতে, আপনার সময়সূচীকে পাঁচটি প্রশ্নের উত্তর হিসেবে ভাবুন:
- কোন মিনিটে? (0-59, অথবা প্রতি মিনিটের জন্য
*) - কোন ঘণ্টায়? (0-23, অথবা প্রতি ঘণ্টার জন্য
*) - মাসের কোন দিনে? (1-31, অথবা প্রতিদিনের জন্য
*) - কোন মাসে? (1-12, অথবা প্রতি মাসের জন্য
*) - সপ্তাহের কোন দিনে? (0-7, অথবা প্রতিদিনের জন্য
*)
উদাহরণস্বরূপ, "প্রতি মঙ্গলবার এবং বৃহস্পতিবার বিকাল ২:৩০ টায়" হবে: মিনিট=30, ঘণ্টা=14, দিন=, মাস=, সপ্তাহের দিন=2,4, যা দেয় 30 14 * * 2,4।
গুরুত্বপূর্ণ ক্রন ২৪-ঘণ্টা সময় ব্যবহার করে। সকাল ৯ টা হলো 9, কিন্তু রাত ৯ টা হলো 21। এছাড়া মনে রাখবেন যে সময় অঞ্চল ক্রন জব চালানো সার্ভারের উপর নির্ভর করে, আপনার স্থানীয় সময়ের উপর নয়। আপনার সিস্টেম কোন সময় অঞ্চল ব্যবহার করে সবসময় নিশ্চিত করুন।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
আমি যদি মাসের দিন এবং সপ্তাহের দিন দুটোই সেট করি তাহলে কী হবে? স্ট্যান্ডার্ড ক্রনে, যেকোনো একটি শর্ত পূরণ হলেই কাজটি চলে (এটি OR, AND নয়)। এটি অনেককে বিভ্রান্ত করে। আপনার যদি দুটি শর্তই প্রয়োজন হয়, একটি র্যাপার স্ক্রিপ্ট ব্যবহার করুন যা তারিখ পরীক্ষা করে।
আমি কি প্রতি ২ ঘণ্টায় কিছু শিডিউল করতে পারি?
হ্যাঁ। 0 */2 * * * ব্যবহার করুন যা প্রতি দ্বিতীয় ঘণ্টার মিনিট 0 তে চলে।
৫-ফিল্ড এবং ৬-ফিল্ড ক্রনের মধ্যে পার্থক্য কী? কিছু সিস্টেম (যেমন Spring, Quartz) শুরুতে একটি সেকেন্ড ফিল্ড যোগ করে। স্ট্যান্ডার্ড ইউনিক্স ক্রন পাঁচটি ফিল্ড ব্যবহার করে। ক্রন পার্সার উভয় ফরম্যাট সমর্থন করে।
পরবর্তী ধাপ
এখন যেহেতু আপনি ক্রন এক্সপ্রেশন পড়তে এবং লিখতে পারেন, আপনার প্রজেক্টের জন্য সময়সূচী তৈরি করে দেখুন। আপনি যদি অন্যান্য ডেভেলপার টুল নিয়ে কাজ করেন, প্যাটার্ন ম্যাচিংয়ের জন্য আমাদের রেজেক্স টেস্টার অথবা কনফিগারেশন ফাইলের সাথে কাজ করতে JSON ফরম্যাটার দেখুন।