Cron Job چیست و چه کاربردهایی دارد ؟
تمامی فعالیتهای قابل انجام توسط سرورهای اینترنتی به دلایل مختلف از جمله زمانبر بودن و نیاز به اجرا در زمانهای خاص نمیتوانند همزمان با درخواست کاربران به انجام برسند.
برای مثال زمانی که شما در پنل پیامک، متنی را به ۱۰۰۰ یا ۱۰۰ هزار شماره ارسال میکنید، همزمان با زدن دکمهی «ارسال»، انتظار دریافت پاسخ از وضعیت موجود را دارید. در حالی که ارسال این تعداد پیامک به مخاطبان ممکن است چندین دقیقه یا چندین ساعت زمان نیاز داشته باشد.
به عنوان مثالی دیگر، هنگامی که یک دامنه به ثبت میرسانید، انتظار دارید یک هفته یا ۱۰ روز پیش از پایان مهلت تمدید سالیانه، ایمیلی دریافت کنید تا از نزدیک شدن زمان تمدید آگاهی پیدا کنید.
مواردی مانند مثالهای فوق نمیتوانند به صورت همزمان با درخواستهای کاربر یا مشاهدهی صفحات وب به انجام برسند و لازم است در پشت صحنه و به صورت منظم بدون نیاز به پیگیری و فعالیت کاربران در سایت انجام شوند.
Cron Job چیست ؟
برای حل مشکل فوق، سیستمهای زمانبندی اجرای دستورات در سیستمعاملهای مختلف از جمله ویندوز و لینوکس تعبیه شدهاند که دستورات مورد نظر شما را با قوانین خاص و در زمانهای دلخواه اجرا میکنند.
این ویژگی در سیستمعامل لینوکس Cron Job نام دارد. ویژگی مشابه در سیستم عامل ویندوز Scheduled Tasks نامگذاری شده است.
هر Cron Job میتواند در زمانهایی با قوانین مشخص به اجرا درآید. برای مثال «هر روز ساعت ۱۲» یا «یک روز در میان ساعت ۳» یا «هر ۵ دقیقه یک بار». ایجاد قانونهای زمانبندی نیازمند مطالعه و آشنایی بیشتر با حالتهای مختلف است. سرویسهای آنلاین و ابزارهای مختلفی نیز برای تعریف سادهتر این قوانین وجود دارند. یک نمونه از این سرویسها در این نشانی یا این نشانی قابل مشاهده است.
Cron Job چه کاربردهای دارد ؟
کاربردهای Cron Job علاوه بر مثالهایی که در ابتدای نوشته گفته شد، بسیار متنوع است. به طور کلی تمامی فعالیتهایی که بایست در زمانهای منظم و پی در پی به انجام برسند یا فعالیتهایی که زمان اجرای آنها بیش از اندازه طولانی است، میبایست توسط Cron Job به انجام برسند.
برای مثال تبدیل فایلهای ویدئویی در سایت Youtube به این شکل انجام میشود. پس از اینکه ویدئوهای ارسالی توسط کاربران در صف تبدیل قرار بگیرند، سیستم Cron Job در پشت صحنه، ویدئوهای دریافت شده را یک به یک به فرمتهای لازم تبدیل میکند و پس از پایان فرآیند تبدیل، وضعیت در پنل کاربران قابل مشاهده خواهد بود. در زمانی که تبدیل ویدئو به پایان نرسیده است، کاربران میتوانند از فرآیند در حال اجرا در پشت صحنه آگاه شوند.
سرویسهای Cron Job آنلاین
امکان تعریف Cron Job روی برخی از سرورهای اشتراکی ممکن است در دسترس نباشد یا به دلایل دیگر فنی، امکان انجام تنظیمات دلخواه فراهم نشود. در چنین شرایطی، سرویسهای رایگان و تجاری آنلاین میتوانند جایگزین Cron Job شوند. سرویسهای آنلاین تنظیماتی را در اختیار شما قرار میدهند که علاوه بر تعیین زمانبندی، یک URL در سایت خود را تعیین مینمایید. سیستم سپس در زمانهای مورد نظر شما، URL هدف را فراخوانی میکند و شما به این شکل خواهید توانست برنامههای پشت صحنه را به صورت منظم به انجام برسانید.
محدودیت این روش، ممکن است کوتاه بودن زمان اجرای اسکریپتها یا محدودیت توان پردازشی و حافظه باشد. در چنین شرایطی میبایست کارها به بخشهای کوچکتر و قابل انجام در محدودیت زمانی تقسیم شوند. یک نمونه از این گونه سرویسها cron-job.org است.
آموزش ساخت Cron Job در cPanel
ایجاد یک Cron Job به صورت معمول در محیط سیستمعامل با اجرای دستورات خط فرمان یا با استفاده از ابزارهای گرافیکی به انجام میرسد. در هنگام طراحی سایت، پنلهای مختلف مدیریت مانند cPanel قسمتهایی برای تعریف Cron Job در اختیار برنامهنویسان قرار میدهند.
برای ایجاد Cron Job در cPanel ابتدا به بخش مورد نظر با عنوان متناظر مراجعه کنید:
در این پنجره چندین بخش وجود دارد. بخش نخست، تعیین یک ایمیل برای ارسال خطاها یا پاسخهای دریافت شده از نرمافزار خط فرمان است. این بخش به خطایابی و آگاه شدن از وضعیت اجرای فرمانها کمک میکند.
در بخش بعد میتوانید یک Cron Job جدید ایجاد کنید. برای سادهتر شدن کار، چندین قالب پیشفرض از زمانبندیهای پرکاربرد در فهرست قابل انتخاب است. به دلیل محدودیتهای دسترسی به بخشهای مختلف سیستمعامل در سرورهای اشتراکی ممکن است در یافتن دستور مناسب برای اجرای یک فایل اسکریپت با مشکلاتی مواجه شوید. در این بخش بهتر است از پشتیبانی سرور کمک بگیرید.
در بخش پایانی، فهرست Cron Jobهایی است که قبلا روی این سرور ساخته شدهاند و گزینههایی برای ویرایش و حذف آنها در اختیار شما قرار میگیرد: