با سلام.من میخواهم با استفاده از زمان بندی در لاراول یه سری دستورات بصورت روزانه انجام بدم.در زیر کد نوشته شده در فایل App\Console\Kernel رو مشاهده میکنید.
protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')->hourly();
$schedule->call(function () {
$field = new Cfield();
$field = $field->create([
'title' => 'عنوان',
'description' => 'توضیحات',
]);
$field->save();
})->daily();
}
وقتی این کد رو اجرا میکنم ارور No scheduled commands are ready to run رو میده منتها وقتی daily() رو به everyMinute() تغییر میدم اجرا میشه منتها بازهم در صورت دوم اگه 20 بار هم در دقیقه این دستور اجرا کنم اجرا میشه.اگه راه حلی برای این مشکل دارید خوشحال میشم درمیون بذارید
سلام
کش سیستم رو پاک کردید و دوباره تست کنید ؟
php artisan cache:clear
هاست شما چی هست ؟ از اجرا شدن cronjob اطمینان دارید ؟
@mahdiam200
@mohaligateway با سلام این کار رو پس از خالی کردن کش هم انجام دادم منتها فرقی نکرد.نکته دیگر هم اینکه من اینکار هم در لوکال با دستور
php artisan schedule:run
و هم در هاست اشتراکی انجام دادم و با توجه به اینکه اگه تابع everyMinute() اجرا کنم اجرا میشه پس cron job کارش به درستی انجام میده
شما یک بار تمام schdule ها تون رو kill کنید و دوباره run کنید شاید دارن confilict میدن.
@mahdiam200
وقتی شما یک schdule را اجرا می کنید به صورت پیشفرض بر روی هاست و یا سیستم عامل شما در حال اجرا شدن هست. برای اینکه بتونید اجرا شدن schdule را stop کنید می بایست فرآیند پردازش این پروسه را kill کنید. این اصطلاحی است که در لینوکس استفاده می شود. ابتدا با استفاده از دستور زیر PID اجرا را باید پیدا کنید و سپس آن را kill کنید.
ps -fe | grep artisan
برای kill کردن این لینک را مطالعه کنید.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟