1399/2/28، 05:17 عصر
به نام خدا
سلام دوستان امیدوارم حالتون خوب باشه...
امروز قصد داریم راجع به Cron Job یا Scheduled Task (وظایف از پیش برنامه ریزی شده) صحبت کنیم. در لغت نامه های تخصصی علوم رایانه کلمه Cron در واقع مخفف Command Run On در سیستم یونیکس هست. با استفاده از مفهوم Cron Job (وظایف از پیش برنامه ریزی شده) قادر هستیم یکسری وظایف رو از قبل برنامه ریزی کنیم و در زمان مقرر (تعیین شده) اجرا کنیم. به طور مثال فرض کنین قصد داریم هر روز هفته در یک زمان مشخص یکسری اطلاعات رو برای کاربران ایمیل کنیم. اینجاست که باید به مفهوم وظایف از پیش برنامه ریزی شده متکی باشیم و از اون استفاده کنیم.سلام دوستان امیدوارم حالتون خوب باشه...
پس به طور خلاصه میتونیم با کمک Cron Job یا Scheduled Task (وظایف از پیش برنامه ریزی شده) عملیات های دلخواه خودمون رو از قبل برنامه ریزی کنیم و در زمان مقرر اجرا کنیم.
رفع ابهام راجع به دو لفظ Cron Job و Scheduled Task:
همونطور که میدونید در دنیا دو سیستم عامل رایج برای وب سرورها وجود داره که عبارتند از لینوکس و ویندوز. در لینوکس به وظایف از پیش برنامه ریزی شده Cron Job میگیم. در بسیاری از هاست های اشتراکی (به خصوص هاست هایی که کنترل پنلشون Cpanel هست) به سادگی میتونین منوی Cron Job رو پیدا کنین و ازش استفاده کنین.
در دنیای ویندوز تعریف وظایف از پیش برنامه ریزی شده از بخشی تحت عنوان Scheduled Tasks قابل انجامه.
در دنیای لینوکس تعریف کرون جاب ها از یک قاعده نوشتاری و دستوری خاص پیروی میکنه که در ادامه راجع به اون صحبت می کنیم. بر خلاف لینوکس در ویندوز تعریف یک وظیفه از پیش برنامه ریزی شده با چند کلیک ساده قابل انجامه.
در نظر داشته باشین که در صورتی که بخواین از یک سرور شخصی (VPS) استفاده کنین نیاز به تسلط کافی نسبت به قاعده نوشتاری کرون جاب ها در لینوکس دارین اما اگر از هاست های اشتراکی استفاده می کنین توضیحاتی که در بخش کرون جاب هاست اشتراکی شما وجود داره میتونه کار شما رو به تنهایی راه بندازه و نیاز خاصی به دونستن قاعده نوشتاری کرون جاب ها ندارید.
قاعده دستوری (نوشتاری) یا سینتکس (Syntax) کرون جاب ها:
این قاعده که از قسمت پیش بحثش رو به میان آوردیم خیلی پیچیده نیست و اتفاقاً بسیار هم ساده است. قبل از هر چیز باید بدونین که وظایفی که تحت عنوان کرون جاب (وظایف از پیش تعیین شده) تعریف می کنیم در فایلهای متنی با نام Cron Tab (کرون تب) ذخیره میشن. پس در واقع به فایل متنی که وظایف از پیش تعیین شده (کرون جاب ها) در اون وجود دارن کرون تب میگیم و به خود دستورات که شامل زمان اجرا وظیفه موردنظر هستن کرون جاب میگیم. پس حتماً حواستون باشه که بین دو کلمه (لفظ) کرون جاب و کرون تب تفاوت قائل بشین.
هر فایل کرون تب همونطور که مشخصه شامل کرون جاب ها هست. هر کرون جاب (دستور) شامل 7 ستون به شکل ستاره هست که در واقع زمان اجرای وظیفه موردنظر رو مشخص میکنه. در نهایت بعد از ستاره ها میتونیم یک مسیر یا دستور رو مشخص کنیم. به شکل زیر از چپ به راست دقت کنید:
همونطور که می بینید هر یک از ستاره ها (ستون ها) برای تعریف یک مفهوم مشخص طبق ترتیب گفته شده به کار میرن. دفت کنید تنها ذکر ستون شماره سال اختیاری است و بقیه ستون ها باید تماماً درج بشن.
اما صرفاً دونستن اینکه هر یک از هفت ستاره (ستون) چه چیزی رو مشخص می کنه کفایت نمیکنه و باید از یکسری عملگرها (Operators) هم برای موارد پیشرفته تر استفاده کنید. جدول زیر به تشریح عملگرها می پردازه:
بررسی چند مثال:
- ◘ کرون جاب زیر مشخص می کند که هر روز رأس ساعت 12 ظهر یک وظیفه انجام شود:
کد:
0 0 12 * * ?
- ◘ کرون جاب زیر مشخص می کند که هر سال در یازدهم ماه نوامبر و در ساعت یازده و یازده دقیقه صبح یک وظیفه انجام شود:
کد:
0 11 11 11 11 ?
- ◘ کرون جاب زیر مشخص می کند که هر روز از ساعت دو بعد از ظهر تا ساعت دو و پنج دقیقه بعد از ظهر یک وظیفه انجام شود:
کد:
0 0-5 14 * * ?
دقت کنید گاهی اوقات کرون جاب ها می تونن خیلی ساده باشن مثل نمونه زیر:
کد:
* * * * ? *
کد:
0 0/5 14,18,3-39,52 ? JAN,MAR,SEP MON-FRI 2002-2011
مدیریت وظایف از پیش برنامه ریزی شده به وسیله PHP:
در اینجا ما فرض میکنیم که شما یک هاست اشتراکی دارید و خبری از سرور شخصی (VPS) نیست که مجبور به وارد کردن دستورات لینوکسی و یا استفاده از SSH باشین. شما میتونین به راحتی از طریق منوی کرون جاب در کنترل پنل هاستتون یک کرون تب تعریف کنید و بعد مسیر برنامه PHP موردنظرتون رو به اون بدین و البته در برنامه PHP هم مسیر کرون تب رو ذکر کنین. چون تعریف کرون تب به وسیله تنظیمات هاست های اشتراکی چندان پیچیدگی خاصی نداره بنابراین جهت جلوگیری از طولانی شدن مطلب از توضیحات بیشتر صرف نظر میکنم.
اگر در زمینه ساختن کرون تب ها مشکلی داشتید میتونید به کمک این سایت به صورت آنلاین فایل کرون تب موردنظرتون رو ایجاد کنین.
امیدوارم این مطلب براتون کاربردی واقع شده باشه و تونسته باشه در ایجاد یک درک خوب نسبت به کرون جاب به شما کمک کنه.
بسیار خوشحال میشم که نظرات خودتون رو در ادامه گوشزد کنید و یا اگر جایی اشتباه یا نامفهوم بیان شده حتماً اعلام کنید.
با آرزوی بهترین ها...