سلام دوستان عزیز
من از طریق سی پنل (هاست اشتراکی) دستور کران جاب رو اجرا میکنم و یک دیتایی رو در پایگاه داده ذخیره میکنم
مشکل من اینکه دستور زیر رو میزنم
php /home/username/public_html/artisan schedule:run >> /dev/null 2>&1
و در صورتی که تابع زمان بندی بصورت زیر باشد (یعنی کد ذخیره اطلاعات در تابع بصورت مستقیم بکار رود)
protected function schedule(Schedule $schedule)
{
Useless::create(['data' => mt_rand(0000000 , 9999999)]);
}
عملیات کرون جاب بصورت کامل انجام میشه و سر زمان مشخص شده ، ذخیره سازی انجام میشود.
حالا اگر دستور زیر رو هم وارد کنم (یعنی امضای command رو هم مستقیم صدا بزنم)
php /home/username/public_html/artisan word:day >> /dev/null 2>&1
و این کد ذخیره سازی در تابع handel در کلاس command رو بازم مستقیم صدا بزنم کد کار میکنه :
public function handle()
{
return Useless::create(['data' => mt_rand(0000000 , 9999999)]);
}
اما اگر command رو در تابع schedule فراخوانی کنم کد کار نمیکنه :
<?php namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
Commands\WordOfTheDay::class,
];
/**
* Define the application's command schedule.
*
* @param Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
$schedule->command('word:day')->everyMinute();
}
/**
* Register the commands for the application.
*
* @return void
*/
protected function commands()
{
$this->load(__DIR__.'/Commands');
require base_path('routes/console.php');
}
}
واقعا برام سواله و هیچ جا جوابی براش پیدا نکردم !!! چرا باید به دو صورت اول کار کنه اما زمانی که command رو در تابع schedule صدا میزنیم کار نمیکنه
Laravel Framework 7.28.4
php 7.4.3
به سید سروش ساری زاده کمک کنید تا مشکل خودش را حل کند؛ اینطور میتوانیم با هم پیشرفت کنیم.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟