티스토리 뷰

라라벨 프레임워크와 관련된 정보는 라라벨코리아 사이트를 통해서 번역된 매뉴얼을 확인하는것이 가장 빠르고 정확합니다.

자세한 사이트 정보는 포스팅 하단에 추가해두었으니 참고 바랍니다.

 

 

스케쥴 정의

App\Console\Kernel  schedule 메소드에 필요한 스케쥴 작업을 정의합니다.

스케쥴 작업은 다음과 같이 선언하여 

 

예시> $schedule->command('signature')->작업주기 옵션();

- daily(): 자정기준 하루 한번 실행

 

- hourlyAt(15) : 매시 15분 마다 실행

 

라라벨 스케쥴링 Kernel 정의

 

App\Console\Commands\스케쥴 생성 후, 해당 메서드 작성 시 signature 를 지정해둡니다.

해당 signature 는 App\Console\Kernel  schedule 메소드 내, 스케쥴 작업 정의 시 선언합니다.

 

예시>  protected $signature = 'kairspec:getMsrstnInfoAll';

라라벨 스케쥴링 Command 선언

 

배치 등록

보통 서버에서 스케쥴링 작업 할때, 각 작업마다 crontab 에 등록하여 사용하기 때문에 관리 및 운영시 주의가 필요하며 번거롭습니다. 라라벨 프레임워크에서는 Crontab 에 스케쥴 명령어 schedule:run 만 등록해두면, 스케쥴 주기 옵션에 맞춰 작업을 수행합니다.

// Laravel Scheduler
* * * * * cd /project-path/ && php artisan schedule:run >> ./storage/logs/crond.log 2>&1

 

 

수동실행

아티즌 명령어를 통해 수동으로 스케쥴 작업을 실행할 수 있습니다. 이는, 스케쥴링 주기 옵션을 대기하지 않고 개발 단계에서 작업을 할때 유용하게 활용됩니다.

 

App\Console\Commands\스케쥴 생성 후, 해당 메서드 작성 시 선언한 signature 를 사용합니다.

예시>  protected $signature = 'kairspec:getMsrstnInfoAll';  일때 아래와 같이 수동으로 실행 시킵니다.

php artisan kairspec:getMsrstnInfoAll

 

댓글