عنوان مقاله :

Task های زمان بندی شده در لاراول (هاست های اشتراکی)

گردآوری و تالیف : امیررضا سیستانه ای
تاریخ انتشار : 14 شهریور 1396
دسته بندی ها : لاراول

در این مقاله میخواهیم به مبحث مهمی بپردازیم که احتمالا بارها بهش برخوردید و ممکنه نتونسته باشید به درستی از اون استفاده کنید. این مبحث "انجام وظایف زمان بندی شده" هست که دو بخش عمده داره. یکی از بخش هاش در خود لاراول کدنویسی میشه و یک بخش مهم دیگه ی اون باید در سرور احتمالا لینوکسی انجام بشه. و این بخش دوم وقتی به مشکل میخوره که شما از هاست های اشتراکی استفاده کنید. که البته معمولا برای وبسایت های عادی از این هاست ها استفاده میشه.

تعریف وظایف

برای اینکه وظایفی که مدنظرتون هست رو بصورت زمان بندی شده انجام بدید دو راه وجود داره. یکی این هست که command سفارشی خودتون رو بسازید و در هاست مورد نظر بگید اون دستور اجرا بشه و یک راه هم اینه که Task مورد نظرتون رو تعریف کنید و با استفاده از دستور زیر اون رو اجرا کنید :

php artisan schedule:run

که ما در ادامه چگونگی اجرای دستور در هاست اشتراکی رو مطرح می کنیم.

برای اینکه وظیفه ی مورد نظر رو تعریف کنید باید به فایل App\Console\Kernel رفته و کدی شبیه این وارد کنید :

$schedule->call(function () {
    // ... your code
})->daily();

همینطور که از ظاهر امر پیداست شما میتونید وظیفه مورد نظر رو طبق زمان بندی دلخواه تون اجرا کنید مثلا :

  • هر ساعت : ()hourly
  • هر روز : ()daily
  • هر روز ساعت 9:30 : (daily('09:30
  • هر هفته : ()weekly
  • هر ماه : ()monthly
  • دستور سفارشی : ('* * * * *')cron
  • و دستورات مشابه

و حتی میتونید به صورت ترکیبی عمل کنید :

$schedule->command('theTask')

         ->weekly()

         ->mondays()

         ->at(12:30);

یا حتی شرط تعیین کنید :

$schedule->command('table:clean')

          ->daily()

          ->when(function() {

             return SMS::isWorkingFine();

          });

بعد از اینکه تعاریف دستور/دستورهای شما مشخص شد, اگر در حالت local هستید با اجرای دستور زیر زمان بندی شما چک میشه :

php artisan schedule:run

اما اگر در هاست اشتراکی لینوکس بخواهید این رو اجرا کنید باید به مبحث cron job ها بپردازیم. 

آموزش استفاده از دستورات artisan در هاست

ابتدا وارد کنترل پنل هاست (در اینجا از cpanel استفاده می کنیم) شوید و از بخش ADVANCED مورد Cron jobs رو انتخاب کنید. (اگر تم پنل شما فرق میکنه میتونید بالا سمت راست cron jobs رو جستجو کنید)

حالا برای افزودن یک cron جدید به بخش Add new cron job رفته و Common settings رو بطور دلخواه انتخاب کنید. (اینجا ما یکبار در هر دقیقه رو انتخاب کردیم)

حالا نوبت نوشتن دستور مورد نظر هست. معمولا در سرویس هاست اشتراکی این دستور به شکل زیر هست اما اگر جواب نداد به سرویس هاست یک تیکت بزنید :

/usr/local/bin/php   /home1/username/public_html/artisan schedule:run 1>> /dev/null 2>&1

بخش اول دستور مربوط به نرم افزار php هست که سرور در اختیار cron job قرار داده. این بخش احتمال داره شما رو به مشکل بیاندازه چون اگر ورژن php اون کمتر از 5٫6 باشه به خطا برمیخورید. پس در اینصورت با پشتیبانی هاست در تماس باشید. 

بخش /home1/username/public_html/artisan آدرس فایل artisan پروژه شماست. که در صفحه اصلی cpanel تا public_html رو میتونید پیدا کنید.

بخش نهایی هم دستور مورد نظر ماست که اینجا ما میخواهیم وظایف زمان بندی شده رو اجرا کنیم.

خطایابی

خطاهای احتمالی رو میتونید از دو بخش بررسی کنید. اولی در مسیر اصلی هاست (فایل منیجر) و فایل error_logs هست. و دومی هم در مسیر پروژه ی لاراولی storage/logs ذخیره میشه. از این دو جا میتونید خطاهایی که ممکنه پیش بیاد رو رصد کنید.

مقالات پیشنهادی

چطور لاراول از وبسایت شما محافظت می کند؟

لاراول کمک میکنه تا امنیت وبسایت شما تامین بشه. در این مقاله می خواهیم نحوه برخورد لاراول با سه ریسک امنیتی مهم : نفوذ sql, جعل درخواست cross-site و ا...

ساخت یک اپلیکیشن با لاراول و AngularJS – قسمت اول

لاراول و AngularJS با همدیگه به خوبی کار می کنند, به شرطی که در مسیر درست از اون ها استفاده کنید. در این مقاله ما می‌خواهیم یک اپلیکیشن بسازیم که در ا...

5 ویرایشگر کد محبوب برای استفاده در لاراول

یکی از بهترین ویرایشگرهای متنی که برای کدنویسی استفاده میشه Sublime Text هست. Sublime قابلیت‌های زیادی داره که کدنویسی رو جذاب می کنه, و توسط پلاگین ه...

استفاده از REST API وردپرس در فریمورک لاراول

ورژن 4.7 وردپرس که جدیداً منتشر شده قابلیت فوق‌العاده‌ای به نام REST API اضافه کرده که قبلاً فقط با استفاده از پلاگین های خارجی ممکن بود. بنابراین ما...

دیدگاه های ارزشمند شما

برای ارسال نظر لازم است ابتدا وارد سایت شوید
هیچ دیدگاهی تا به این لحظه برای این موضوع ثبت نشده است