1、创建命令
php artisan make:command command_name --command=artisan_command_name
# Explanation:
# command_name: 生成的文件名
# artisan_command_name: php artisan 命令调度时的命令名称
# 结果: 在 /app/Console/Commands/ 下生成名为 command_name.php 的文件
# Example:
# php artisan make:command BussineSendSms --command=BussineSendSms
# 生成的文件名:BussineSendSms
# 调度时的命令名称:BussineSendSms
执行后会提示Console command created successfully.
执行PHP artisan list会看到对应的执行command命令说明已成功.
php artisan BusineSendSms
# Explanation:
# 没有返回则表示成功。
# 因为 /app/Console/Commands/BusineSendSms.php 的 handle 方法中没有写内容。写了就会有返回。
command('inspire')
// ->hourly();
// 每分钟执行一次获取领导信箱
// command() 调度时的命令名称
// everyFiveMinutes() 调度规则
// appendOutputTo() 调度命令进行操作的返回结果记录文件
$schedule->command('BusineSendSms')->everyFiveMinutes()->appendOutputTo(base_path('storage/crontab/log.log'));
}
/**
* Register the commands for the application.
*
* @return void
*/
protected function commands()
{
$this->load(__DIR__ . '/Commands');
require base_path('routes/console.php');
}
}
# path-to-your-php/bin/php 是你的PHP的绝对路径,通过 which php 可以得到;
# path-to-your-project/artisan 是你项目中Laravel框架中根目录下的 artisan 的绝对路径;
* * * * * path-to-your-php/bin/php /path-to-your-project/artisan BusineSendSms >> /dev/null 2>&1
如果命令执行比较频繁(如每分钟一次),或者命令输出内容较多,会使这个邮件文件不断追加内容,文件越来越大。而邮件文件一般存放在根分区,根分区一般相对较小,所以会造成根分区写满而无法登录服务器。
* * * * * path-to-your-php/bin/php /path-to-your-project/artisan BusineSendsms >> /dev/null 2>&1
* * * * * path-to-your-php/bin/php /path-to-your-project/artisan BusineSendSms > /tmp/log.log 2>&1
* * * * * path-to-your-php/bin/php /path-to-your-project/artisan BusineSendSms > /tmp/log.log &
* * * * * path-to-your-php/bin/php /path-to-your-project/artisan BusineSendSms 2> /tmp/log.log &