Kernel.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace App\Console;
  3. use Illuminate\Console\Scheduling\Schedule;
  4. use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
  5. class Kernel extends ConsoleKernel
  6. {
  7. /**
  8. * 定义应用的自定义 Artisan 命令
  9. *
  10. * @var array
  11. */
  12. protected $commands = [
  13. Commands\DailyTask::class,
  14. ];
  15. /**
  16. * Define the application's command schedule.
  17. *
  18. * @param \Illuminate\Console\Scheduling\Schedule $schedule
  19. * @return void
  20. */
  21. protected function schedule(Schedule $schedule)
  22. {
  23. $schedule->command('task:daily')
  24. ->timezone('Asia/Shanghai') // 设置时区,可选
  25. ->runInBackground() // 在后台运行,可选
  26. ->withoutOverlapping() // 防止任务重叠执行
  27. ->appendOutputTo(storage_path('logs/daily-task.log')) // 输出到日志文件
  28. ->onOneServer(); // 如果使用多服务器,确保只在一台服务器上运行
  29. // 每天17:00执行
  30. $schedule->command('task:city_warning_notice')
  31. ->dailyAt('17:00')
  32. ->timezone('Asia/Shanghai') // 设置时区,可选
  33. ->runInBackground() // 在后台运行,可选
  34. ->appendOutputTo(storage_path('logs/city-warning-notice-task.log')) // 输出到日志文件
  35. ->onOneServer(); // 如果使用多服务器,确保只在一台服务器上运行
  36. }
  37. /**
  38. * Register the commands for the application.
  39. *
  40. * @return void
  41. */
  42. protected function commands()
  43. {
  44. $this->load(__DIR__ . '/Commands');
  45. require base_path('routes/console.php');
  46. }
  47. }