嗨,我正在使用 Laravel 运行 CRON JOB
Laravel 中的函数声明
protected function schedule(Schedule $schedule)
{
echo "test CRON JOB\n";
$file1 = '1.log';
$file2 = '2.log';
$schedule->command('command1')->sendOutputTo($file1);
$schedule->command('command2')->sendOutputTo($file2);
}
CRON 作业 - 设置
pathToArtisan schedule:run 2>&1 >> /home/log/cron_output.log
日志文件输出(cron_output.log)
test CRON JOB
Running scheduled command: '/opt/alt/php55/usr/bin/php' 'artisan'command1 > '1.log' 2>&1 &
Running scheduled command: '/opt/alt/php55/usr/bin/php' 'artisan' command2 > '2.log' 2>&1 &
功能表中的回显显示,但我的命令 1 和命令 2 中的回显不显示。
我试过了
echo "test"; $this->info('test');
/home/log/ 或 Kernel.php 文件所在位置或 Command 文件夹中没有创建文件 1.log 或 2.log
有什么想法吗?
谢谢你
您应该使用 Laravel 中内置的 task output 方法。
例如:
$file = 'command1_output.log';
$schedule->command('command1')
->sendOutputTo($file);
现在一切都好。
$schedule->command('command1')
->sendOutputTo($file);
在你的命令中
$this->info('test')
这些文件是在我的应用程序的根文件夹中创建的,所以我没有看到它们!
谢谢你
$schedule->command('my:command')
->daily()
->onSuccess(function () {
// The task succeeded...
//set flag here and store to DB
})
->onFailure(function () {
// The task failed...
//set flag here and store to DB
});
在管理仪表板中显示列表,以便您可以使用这些标志(cron 状态)检查日志
你可以使用
$schedule->command('app:custom-command')
->everyDay()
->sendOutputTo(storage_path())
->onSuccess(function () {
//things to do on success
})
->onFailure(function () {
// things to do on failure
})
->emailOutputTo("[email protected]");