简要描述:
- laravel写crontab
artisan命令:
php artisan make:command DealTheme
app/Console/Commands下就会看到DealTheme.php:
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'command:deal_theme';
/**
* The console command description.
*
* @var string
*/
protected $description = 'DealTheme';
- 需要执行的方法写在handle中:
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
}
在app/Console/Kernel中注册路由:
<?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 = [
\App\Console\Commands\DealTheme::class
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
// 设置每秒执行一次
$schedule->command('command:deal_theme')->everyMinute();
}
/**
* Register the Closure based commands for the application.
*
* @return void
*/
protected function commands()
{
require base_path('routes/console.php');
}
}
在linux的crontab -e中插入:
* * * * * /usr/lnmp/php/bin/php /www/artisan schedule:run >> /dev/null 2>&1
注意:
- laravel的command需要关闭proc_open、proc_get_status函数禁用。
网友评论