起きていること
開発環境ではバッチ処理に対してタスクスケジュールが起動するが、本番環境(conoha VPS)では機能しない。
前提の認識
バッチ処理を実行するために、以下2つのみ行っております。
「そもそもこれやらなきゃ」みたいな抜け漏れがありましたら教えていただけると幸いです。
1.バッチ処理にどのようなことをするか記載する
2.タスクスケジュールにどのバッチ処理をいつ起動するか記載する
該当プログラム
1.バッチ処理
php
1// /sample/app/Console/Commands/LessonFinish.php 2<?php 3 4namespace App\Console\Commands; 5 6use Carbon\Carbon; 7use App\Mail\EvaluationRequest; 8use App\Models\User; 9use App\Models\Lesson; 10use App\Models\Payment; 11use App\Models\Application; 12use App\Models\Evaluation; 13use Illuminate\Console\Command; 14use Illuminate\Support\Facades\DB; 15use Illuminate\Support\Facades\Mail; 16 17class LessonFinish extends Command 18{ 19 /** 20 * The name and signature of the console command. 21 * 22 * @var string 23 */ 24 // コマンドの名前を設定 25 protected $signature = 'lesson:finish'; 26 27 /** 28 * The console command description. 29 * 30 * @var string 31 */ 32 protected $description = 'レッスンの終了時間に合わせて、レッスンを終了させる'; 33 34 /** 35 * Create a new command instance. 36 * 37 * @return void 38 */ 39 public function __construct() 40 { 41 parent::__construct(); 42 } 43 44 /** 45 * Execute the console command. 46 * 47 * @return int 48 */ 49 public function handle() 50 { 51 // ここに処理色々書いてあります 52 } 53}
2.タスクスケジュール処理
php
1// /sample/app/Console/Kernel.php 2 3<?php 4 5namespace App\Console; 6 7use Illuminate\Support\Facades\DB; 8use Illuminate\Console\Scheduling\Schedule; 9use Illuminate\Foundation\Console\Kernel as ConsoleKernel; 10 11class Kernel extends ConsoleKernel 12{ 13 /** 14 * The Artisan commands provided by your application. 15 * 16 * @var array 17 */ 18 protected $commands = [ 19 // レッスンを削除するコマンド 20 \App\Console\Commands\LessonFinish::class, 21 ]; 22 23 /** 24 * Define the application's command schedule. 25 * 26 * @param \Illuminate\Console\Scheduling\Schedule $schedule 27 * @return void 28 */ 29 protected function schedule(Schedule $schedule) 30 { 31 // レッスン削除のバッチ処理 32 $schedule->command('lesson:finish --force') 33 ->withoutOverlapping() // 多重実行を防ぐ 34 // ->everyFiveMinutes(); // 5分ごとに実行 35 ->everyMinute(); // 5分ごとに実行 36 } 37 38 /** 39 * Register the commands for the application. 40 * 41 * @return void 42 */ 43 protected function commands() 44 { 45 $this->load(__DIR__.'/Commands'); 46 require base_path('routes/console.php'); 47 } 48}
## 試したこと
1.タスクスケジュールのcommandを--forceにしてみた
2.タスクスケジュールのcommandを->everyFiveMinutes();から->everyMinute();に変更してみた
3.laravelのエラーログ確認(出力されていなかった)
4.キャッシュクリア
php artisan cache:clear php artisan config:clear php artisan route:clear php artisan view:clear composer dump-autoload php artisan clear-compiled php artisan optimize php artisan config:cache
環境
Laravel Framework 8.44.0
centos8
conoha VPS
お力添えいただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/31 06:44
2021/05/31 07:01
2021/05/31 07:58