اجرای کرون جاب در جنگو و سی پنل
در این آموزش اجرای Cron برای یک پروژه جنگو که در سی پنل بارگذاری شده؛ مورد بررسی قرار خواهد گرفت. با توجه به اهمیت مسئله و اجتناب از وقوع خطا، تمام روال به صورت گام به گام و پروژه محور توضیح داده شده است.
برای این منظور فرض کنید که میخواهید با اجرای یک کرون فایلی را اجرا نمایید که فراخوانی آن موجب در نظر گرفتن دو عدد تصادفی و جمع آنها خواهد شد. در انتها نیز می بایست نتیجه را در یک فایل با نام زیر در یک مسیر خاص از پروژه ذخیره کنید.
تصویر(1)
در آغاز نیاز به command مناسب جنگو دارید که باید در ساختار صحیحی ایجاد شود. از همین رو در Django باید command ها در مسیر زیر قرار گیرند:
تصویر(2)
-
مسیر commands/management در اپلیکیشن جنگو شما ایجاد می شود.
-
در هر کدام از این فولدرها که ایجاد می نمائید لازم است حتما یک فایل با محتوای خالی و نام __init__.py درست کنید.
حال که با ساختار command مدیریت جنگو آشنا شدید؛ محتوای generate_random_sum.py را به صورت کد تصویر زیر در نظر بگیرید:
تصویر(3)
در این کد مسیر ذخیره فایل های حاصل از اجرای کرون، در file_path مشخص شده است. هدف این می باشد که فایل ها در پوشه ای به نام randomsum ذخیره و جمع آوری گردند. هم اکنون برای اجرای دستی این فایل لازم است وارد ترمینال Cpanel شوید.
برای کار در ترمینال حتما باید محیط مجازی مربوط به پروژه جنگو شما فعال باشد.
پس از اطمینان، دستور زیر را در ترمینال تایپ نمائید:
python manage.py generate_random_sum
کاملا مشخص است که generate_random_sum نام command ایجاد شده شما در مرحله قبل است. پس از اجرای دستور فوق، ساختار پیغامی که نمایش داده می شود؛ به صورت زیر خواهد بود:
File created: /home/username/projectdirectoty /randomsum/2025-01-20-19-52-30.txt
لازم است توجه داشته باشید که در گزارش فوق به جای username نام کاربری هاست و به جای projectdirectoty دایرکتوری انتخاب شده ای که فولدر randomsum برای ذخیره گزارش در آن ایجاد شده است؛ نمایش داده خواهد شد.
اگر پیغام فوق را دریافت کرده اید؛ آماده انجام مرحله آخر برای تعریف کرون جاب در بازه زمانی موردنظرتان خواهید بود.
بنابراین وارد بخش Cron Jobs در Cpanel شده و پس از تنظیم دوره اجرای کرون، در بخش Command دستور زیر را وارد نمائید:
/home/username/virtualenv/projectdirectoty/3.12/bin/python /home/username/projectdirectoty/manage.py generate_random_sum >/dev/null 2>&1
در این دستور به جای username نام کاربری هاست را قرار دهید. مهم است دقت داشته باشید که با ساخت محیط مجازی در Cpanel یک فولدر به نام virtualenv در روت هاست شما ایجاد می شود که تمام محیط های مجازی شما در آن لیست می گردند. بنابراین برای تکمیل دستور لازم است وارد این فولدر و سپس محیط مجازی خودتان (در اینجا projectdirectoty) شده و در نهایت نسخه نوشته شده برای پایتون را مطابق نام همان فولدر که مشاهده می شود؛ جایگزین 3.12 در دستور فوق نمائید.
توجه داشته باشید که در این پروژه مسیر ذخیره فایل ها و محل قرارگیری پروژه جنگو یکسان است و به همین جهت نتیجه اجرای دستی کرون، مشابه مسیر command آن می باشد.
در ابتدا توصیه می گردد که دستور زیر را در انتهای دستور قرار نداده و با تنظیم ایمیل خود در بالای صفحه کرون جاب و تنظیم بازه زمانی کوتاه (مثلا یک دقیقه) صحت اجرای کرون جاب را تست نمائید؛ چرا که اگر خطایی در اجرا وجود داشته باشد نیز گزارش آن به ایمیل شما ارسال خواهد شد.
با توجه به اینکه اجرای کرون تنظیم شده در این پروژه بدون نقص انجام شده، نتیجه آن نیز مانند تصویر زیر به ایمیل ارسال شده است.
تصویر(4)
در این گزارش نیز همانند پیغام ارائه شده پس از اجرای دستی، نام فایل ایجاد شده و مسیر آن قابل مشاهده است. پس از تست موفق، مجددا عبارت زیر را در انتهای دستور قرار دهید تا با هر بار اجرا از ارسال ایمیل جلوگیری شود.
در انتها و پس از سپری شدن زمان کوتاهی به مسیر ذخیره فایل ها مراجعه نمائید، اگر کرون به درستی در حال اجرا باشد فایل ها به صورت تصویر لیست شده اند.
تصویر(5)
با باز کردن هر کدام از فایل ها محتوایی مشابه تصویر زیر مشاهده خواهد شد که با توجه به درون مایه متفاوت فایل ها نسبت به یکدیگر، مشخصا هدف از انجام پروژه محقق شده است.