CRON 作业 - Laravel - 输出

问题描述 投票:0回答:4

嗨,我正在使用 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 cron
4个回答
33
投票

您应该使用 Laravel 中内置的 task output 方法。

例如:

$file = 'command1_output.log';
$schedule->command('command1')
         ->sendOutputTo($file);

7
投票

现在一切都好。

$schedule->command('command1')
     ->sendOutputTo($file);

在你的命令中

$this->info('test')

这些文件是在我的应用程序的根文件夹中创建的,所以我没有看到它们!

谢谢你


1
投票
$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 状态)检查日志


0
投票

你可以使用

$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]");
© www.soinside.com 2019 - 2024. All rights reserved.