Cron Job یا Scheduled Task چیست؟
#1
Information 
به نام خدا
سلام دوستان امیدوارم حالتون خوب باشه...
امروز قصد داریم راجع به 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 ستون به شکل ستاره هست که در واقع زمان اجرای وظیفه موردنظر رو مشخص میکنه. در نهایت بعد از ستاره ها میتونیم یک مسیر یا دستور رو مشخص کنیم. به شکل زیر  از چپ به راست دقت کنید:
[تصویر:  dia.png]
همونطور که می بینید هر یک از ستاره ها (ستون ها) برای تعریف یک مفهوم مشخص طبق ترتیب گفته شده به کار میرن. دفت کنید تنها ذکر ستون شماره سال اختیاری است و بقیه ستون ها باید تماماً درج بشن.
اما صرفاً دونستن اینکه هر یک از هفت ستاره (ستون) چه چیزی رو مشخص می کنه کفایت نمیکنه و باید از یکسری عملگرها (Operators) هم برای موارد پیشرفته تر استفاده کنید. جدول زیر به تشریح عملگرها می پردازه:
[تصویر:  com.png]
بررسی چند مثال: 
  • ◘ کرون جاب زیر مشخص می کند که هر روز رأس ساعت 12 ظهر یک وظیفه انجام شود:
کد:
0 0 12 * * ?
(همانطور که گفته شد عملگر ستاره هر مقداری را پذیرش می کند و عملگر علامت سوال نیز برای زمانی به کار می رود که مقدار شماره روز هفته یا شماره روز ماه نامشخص باشد و بخواهیم محاسبه و دریافت آنرا به کرون جاب واگذار کنیم.)
  • ◘ کرون جاب زیر مشخص می کند که هر سال در یازدهم ماه نوامبر و در ساعت یازده و یازده دقیقه صبح یک وظیفه انجام شود:
کد:
0 11 11 11 11 ?
  • ◘ کرون جاب زیر مشخص می کند که هر روز از ساعت دو بعد از ظهر تا ساعت دو و پنج دقیقه بعد از ظهر یک وظیفه انجام شود:
کد:
0 0-5 14 * * ?
 جدول زیر میتونه یه شمای کامل از هر آنچه که گفتیم به شما بده. پس جمع بندی و حسن ختام مطالبی که در این بخش بررسی کردیم جدول زیر خواهد بود.
[تصویر:  jambandi.png]
دقت کنید گاهی اوقات کرون جاب ها می تونن خیلی ساده باشن مثل نمونه زیر:
کد:
* * * * ? *
همچنین گاهی اوقات کرون جاب ها میتونن پیچیده تر باشن که به این دسته از کرون جاب ها کرون جاب های پیچیده یا Complex Cron Jobs میگیم. مثلاً:
کد:
0 0/5 14,18,3-39,52 ? JAN,MAR,SEP MON-FRI 2002-2011

مدیریت وظایف از پیش برنامه ریزی شده به وسیله PHP:
در اینجا ما فرض میکنیم که شما یک هاست اشتراکی دارید و خبری از سرور شخصی (VPS) نیست که مجبور به وارد کردن دستورات لینوکسی و یا استفاده از SSH باشین. شما میتونین به راحتی از طریق منوی کرون جاب در کنترل پنل هاستتون یک کرون تب تعریف کنید و بعد مسیر برنامه PHP موردنظرتون رو به اون بدین و البته در برنامه PHP هم مسیر کرون تب رو ذکر کنین. چون تعریف کرون تب به وسیله تنظیمات هاست های اشتراکی چندان پیچیدگی خاصی نداره بنابراین جهت جلوگیری از طولانی شدن مطلب از توضیحات بیشتر صرف نظر میکنم.
اگر در زمینه ساختن کرون تب ها مشکلی داشتید میتونید به کمک این سایت به صورت آنلاین فایل کرون تب موردنظرتون رو ایجاد کنین.
امیدوارم این مطلب براتون کاربردی واقع شده باشه و تونسته باشه در ایجاد یک درک خوب نسبت به کرون جاب به شما کمک کنه.
بسیار خوشحال میشم که نظرات خودتون رو در ادامه گوشزد کنید و یا اگر جایی اشتباه یا نامفهوم بیان شده حتماً اعلام کنید.
با آرزوی بهترین ها...
غایب
  پاسخ


 سپاس شده توسط: M.gh ، mhp ، aag ، hamedbz ، rezamms ، amin hosseini


موضوع‌های مشابه…
موضوع نویسنده پاسخ بازدید آخرین ارسال
Star مهم آموزش خروجی اندروید روی سیستم شخصی rezamms 127 76,073 1402/8/24، 09:00 عصر
آخرین ارسال: mehdiosw
  مهم آموزش تصویری خروجی مستقیم - یکبار برای همیشه! rezamms 33 17,645 1401/2/13، 09:39 عصر
آخرین ارسال: kamran_cn
  خروجی اندرید davinmstr1 2 2,139 1400/8/4، 10:23 عصر
آخرین ارسال: ᔕinaᗪehghani
  AAB (بسته برنامه اندروید) چيست؟ + نحوه خروجي گرفتن در كرودوا ᔕinaᗪehghani 15 6,988 1400/6/21، 01:55 صبح
آخرین ارسال: mehdi1100
  رفع مشکل خروجی فونگپ (: M.gh 11 7,298 1400/4/10، 02:17 صبح
آخرین ارسال: oak

پرش به انجمن: