laravel로 간단한 일괄 처리를 시도합니다.
개요
업무로 배치 처리가 제대로 실시되고 있는지 매일 정점 관측을 하고 있는데, 원래 배치 처리의 코드를 실제로 쓴 적이 없기 때문에 간단한 것으로 좋기 때문에 실제로 스스로 만들어 보려고 생각 만들어 보기로 했다.
artisan에서 command 클래스 만들기
artisan에서 다음 명령을 친다.
하나의 명령으로 쉽게 클래스를 만들 수 있습니다.
$ php artisan make:command Hogecommand
위 명령 실행 후 app/Console/Commands
아래에 아래의 클래스가 되어 있는 것을 확인할 수 있다고 생각합니다.
Hogecommand.php<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class Hogecommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'command:name';
/**
* 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 mixed
*/
public function handle()
{
//
}
}
$ php artisan make:command Hogecommand
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class Hogecommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'command:name';
/**
* 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 mixed
*/
public function handle()
{
//
}
}
protected $signature
= 이름artisan 명령으로 실제로 칠 때 명령 이름이됩니다
protected $description
= 일괄 처리 설명 기존 DB에 야마다 타로 등록
각각,
$signature
, $description
, 에 아래와 같은 내용을 써, handle()내에서 처리를 써 보았습니다.Hogecommand.php
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
use App\Models\Test;
class Hogecommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'updateyamadataro';
/**
* The console command description.
*
* @var string
*/
protected $description = 'テーブルに山田太郎を登録させる';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$item = new \App\Models\Test;
$item->text = '山田太郎';
$item->save();
}
}
kernel.php로 명령 등록
$commands 배열에 Hogecommand 클래스를 나열합니다.
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\Hogecommand::class
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')
// ->hourly();
}
/**
* Register the commands for the application.
*
* @return void
*/
protected function commands()
{
$this->load(__DIR__.'/Commands');
require base_path('routes/console.php');
}
}
artisan 명령으로 updateyamadataro를 치십시오.
php artisan updateyamadataro
DB에 등록되어 있는지 확인
artisan 커멘드로 배치를 두드려 등록시킨 것만의 간단한 처리이므로, 응용적인 일도 할 수 있도록 다음에 더 궁리한 것을 만들 수 있도록 합니다
참고 사이트
Reference
이 문제에 관하여(laravel로 간단한 일괄 처리를 시도합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/colaacesulfameK/items/13a89c5a2aa02b7de890텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)