Laravel 프로젝트에 cronjob을 설정하는 방법
이 튜토리얼은 laravel 애플리케이션에서 작업을 자동화하는 방법(스케줄링이라고 함)을 보여줍니다.
1단계: Laravel 애플리케이션 디렉토리의 명령줄에서 콘솔의 다음 명령을 실행하여 새 명령을 만듭니다.
php artisan make:command CurrencyCron --command=curr:cron
2단계: 새로 생성된 명령 파일을 열고 다음과 같이 논리를 편집합니다.
(디렉토리: app/Console/Commands/CurrencyCron.php)
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Models\Fx_rates;
class CurrencyCron extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'curr:cron';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command description';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
\Log::info("Cron running!");
// Database, email or backup logic goes here:
$convert = new Fx_rates();
$convert->base_curr = "NGN";
$convert->target_curr = $currency;
$convert->online_forex_rate = $res;
$convert->desc = $word;
$convert->save();
}
}
3단계: Kernel.php 파일에 명령을 등록하여 빈도와 명령 실행 시기를 처리합니다.
(디렉토리: app/Console/Kernel.php)
<?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\CurrencyCron::class,
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')->hourly();
$schedule->command('curr:cron')
->timezone('Africa/Lagos')
->dailyAt('08:00');
}
/**
* Register the commands for the application.
*
* @return void
*/
protected function commands()
{
$this->load(__DIR__.'/Commands');
require base_path('routes/console.php');
}
}
4단계: 일정을 테스트 실행하여 다음을 사용하여 실행되는지 확인합니다.
php artisan schedule:run
5단계: 마지막으로, Laravel 애플리케이션의 모든 일정을 처리할 단일 cron 항목을 서버에 추가해야 합니다.
SSH 터미널에 다음 명령을 입력합니다.
ㅏ.
crontab -e
. 서버에서 처음으로 cron을 구성하는 경우 편집기를 사용하라는 메시지가 표시됩니다.비.
* * * * * /usr/bin/php /var/www/html/your_laravel_app/artisan schedule:run > /tmp/cron_log
이것은 cron 데몬을 1분마다 실행하고 Kernel.php에서 정의한 모든 일정을 확인하고 실행하고 분석을 위해 tmp 폴더에 로그 파일을 덤프하는 지시문입니다.Cron은 명령이 성공적으로 실행되는지 여부에 대한 정보를 제공하지 않으므로 문제를 해결하는 유일한 방법은 로그 파일을 보유하는 것입니다.
씨. 다음을 입력하여 서비스를 다시 시작합니다.
sudo service cron reload
Reference
이 문제에 관하여(Laravel 프로젝트에 cronjob을 설정하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dreysongz/how-to-setup-cronjobs-for-a-laravel-project-2li2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)