2017-02-06 1 views
1

나는/app/Http/컨트롤러에서 laravel 프로젝트의 컨트롤러를 사용하고 있습니다. 컨트롤러가 transferDataController를 호출했습니다.Laravel Cron 작업 - 컨트롤러 기능

<?php 
namespace App\Http\Controllers; 
use DB; 
class TransferDataController extends Controller{ 
public function moveStTempSales(){ 



// then a lot of queries. 

    } 
} 

이 함수는 15 분마다 호출해야합니다. 단추 또는 일부 요소에 URL을 사용하여 API 호출하지 않고. Laravel Schedule에 대해 읽었습니다. Laravel 4에서 작동합니까? 그리고 그렇다면 어떻게하면이 기능을 내 경우에 예약 할 수 있습니까? 서버 크론 작업에 대한 지식이 있습니다. 당신이 크론에서 호출 할 수있는 기능을 포함하는 클래스 파일을 생성 할 수 있습니다 생성이 폴더에서

프로젝트 _/응용 프로그램/콘솔/명령

:

+0

나는 컨트롤러 액션에 너무 많은 로직을 넣어 나쁜 습관이다라고 말하고 싶지만. 이를 라이브러리 클래스 함수로 옮긴 다음 컨트롤러와 CLI 명령에서 동일한 함수를 호출 한 다음 cron에서 해당 CLI 명령을 실행할 수 있습니다. 스케줄러가 L4에서 사용 가능한지 잘 모르겠습니다. – apokryfos

+0

리팩토링이 옵션이 아니라면 항상 'curl http : // host/TransferData/moveStTempSales'를 cron 작업에 추가 할 수 있습니다. – apokryfos

답변

2

는 다음 디렉토리로 이동합니다.

지금 같은 경로에 파일이 : Kernel.php

이 파일에는 다음이 포함되어 있습니다

$schedule->command(); 

는 현재 생성 된 클래스의 함수를 호출하는 데 사용할 수 있습니다. 그 사용 후

:

php artisan schedule:run 

기능을 실행합니다.

Reference

+0

예. 내 컨트롤러에이 기능을 유지하고 일정에 호출 할 수있는 방법이 있습니까? –

+1

@ElioChamy : 나는 그렇게 생각하지 않는다. –

+0

kernel.php에서 함수를 시도한 다음 PHP 장인 스케줄 : 이제 잘 작동합니다. 감사합니다. –