一.在laravel中写下需要调用的接口,使用crontab调用执行
1.编辑crontab [crontab -e]
2.填写执行命令: * * * * * root curl 接口通过浏览器的访问地址
二.使用laravel的任务调度
1.定义调度:
在App\Console\Commands下创建Test.php
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Foundation\Inspiring;
use Log;
class edit_time extends Command {
protected $name = 'test';//命令名称
protected $description = 'test'; // 描述
/**
* Execute the console command.
*
*/
public function handle()
{
// 功能代码写到这里
}
}
2.编辑App\Console\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 = [
\App\Console\Commands\Test::class,
];
/**
* Define the application's command schedule.
*这个方法中提供了多种方法来控制定时任务的时间间隔
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
$schedule->command('test') //Test.php中的name
->everyMinute();//每五分钟执行一次
}
/**
* Register the Closure based commands for the application.
*
* @return void
*/
protected function commands()
{
require base_path('routes/console.php');
}
}
控制时间间隔的多种方法:
->cron('* * * * *'); 在自定义Cron调度上运行任务
->everyMinute(); 每分钟运行一次任务
->everyFiveMinutes(); 每五分钟运行一次任务
->everyTenMinutes(); 每十分钟运行一次任务
->everyThirtyMinutes(); 每三十分钟运行一次任务
->hourly(); 每小时运行一次任务
->daily(); 每天凌晨零点运行任务
->dailyAt('13:00'); 每天13:00运行任务
->twiceDaily(1, 13); 每天1:00 & 13:00运行任务
->weekly(); 每周运行一次任务
->monthly(); 每月运行一次任务
->monthlyOn(4, '15:00'); 每月4号15:00运行一次任务
->quarterly(); 每个季度运行一次
->yearly(); 每年运行一次
->timezone('America/New_York'); 设置时区
3.最后,编辑crontab
添加调度命令:
* * * * * /usr/bin/php7.0 /home/wwwroot/laravel/artisan schedule:run >> /dev/null 2>&1
注意:/usr/bin/php7.0 php位置
* * * * * 分别代表 分 时 日 月 周 (定时任务的时间)
/home/wwwroot/laravel/ 项目位置