pishtaz jet

cron job in laravel

کرون چیست ؟‌ cron یک سیستم مدیریت زمان بندی کارهای ار اساس سیستم یونیکس می باشد در واقع با استفاده از این قابلیت می توانیم مشخص نماییم یک یری کارهای به صورت اتوماتیک در زمانهای مشخص انجام شود .

کرون ها دارای دو قسمت می باشد قسمتی جهت مشخص نمودن زمان اجرا و قسمتی جهت کد اجرایی

در واقع ما در کرونها می گوییم هر چه قدر زمان این دستور را اجرا نما .

در قسمت اول که متشکل از ***** می باشد مشخص کننده زمان اجرا می باشد که در صورتی که ***** وارد شود به معنی اجرای هر دقیقه می باشد .

به طور مثال در کرون بالا می گوییم ساعت ۶:۲۰ در ۱۰ هر ماه اجرا شود جهت تنظیم زمانی می توانید از سایت زیر استفاده نمایید :

https://crontab.guru/#1_*_*_*_*

کرون ها در لاراول

برای کار با کرون ها در لاراول نیاز است یک command بسازیم و هر بار که نیاز به آن داشتیم با ارتیسان آن را صدا می زنیم :

با اجرای دستور بالا فایلی در آدرس app/Console/Commands قرار می گیرد که شامل محتوای زیر است .

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

پیشنهاد پیرو برای شما :   بهترین CRM های دنیا

کد زیر به معنی نام دستور می باشد:

که به طور مثال باید به کد زیر تغییر کند

هر دستور دارای یک توضیحی می باشد که به صورت زیر تعریف می گردد :

در متد handle اصل اجرا نوشته میشود به مثال زیر توجه نمایید :

این مثال برای تمامی کاربران ایمیل ارسال می کند.

پیشنهاد پیرو برای شما :   فریم ورک چیست و دلیل استفاده از فریم ورک

رجیستر نمودن کامند و دستور

جهت اضافه نمودن کامند ویا دستور به برنامه در فایل app/Console/Kernel.php  دستور مورد نظر را اضفه می نماییم.

همانگونه که مشاهده می فرمایید دستور به صور روزانه اضافه گردید همچنین دستور در کامند php artisan list  اضافه می گردد .

پیشنهاد پیرو برای شما :   تست و مشاهده خطاهای برنامه های اندروید

و با اجرای دستور زیر اجرا می گردد :

زمان های اجرا : می توانید با استفاده مقادیر زیرا زمان اجرای دستور را مشخص نمایید :

Method Description
->cron(‘* * * * * *’); Run the task on a custom Cron schedule
->everyMinute(); Run the task every minute
->everyFiveMinutes(); Run the task every five minutes
->everyTenMinutes(); Run the task every ten minutes
->everyFifteenMinutes(); Run the task every fifteen minutes
->everyThirtyMinutes(); Run the task every thirty minutes
->hourly(); Run the task every hour
->hourlyAt(17); Run the task every hour at 17 mins past the hour
->daily(); Run the task every day at midnight
->dailyAt(’۱۳:۰۰′); Run the task every day at 13:00
->twiceDaily(1, 13); Run the task daily at 1:00 & 13:00
->weekly(); Run the task every week
->weeklyOn(1, ‘۸:۰۰’); Run the task every week on Tuesday at 8:00
->monthly(); Run the task every month
->monthlyOn(4, ’۱۵:۰۰′); Run the task every month on the 4th at 15:00
->quarterly(); Run the task every quarter
->yearly(); Run the task every year
->timezone(‘America/New_York’); Set the timezone

اضافه نمودن لاراول به سیستم کرون لینوکس

جهت اضافه نمودن سیستم مدیریت کار و اجرای کدهای بالا در زمان مقرر کد زیر را در دستور crontab -e قرار می دهیم .

 

توجه نمایید در صورتی که گام آخر را به درستی اجرا نمایید کل سیستم مدیریت زمان کار نمی کند جهت تست دستور می توانید قسمت کامند را جدا اجرا نمایید و در صورت اجرای صحیح دستور بالا را جرا نمایید .