Laravel任务-上次运行时存储

时间:2019-06-07 09:17:54

标签: php laravel scheduled-tasks

我已经使用Laravel的任务计划完成了CRON Job。但是我需要在上次执行该任务时将其存储在某个地方,

有人有什么存储方式的方法吗?如果Laravel输出什么可以告诉您上次运行的时间吗?

谢谢

2 个答案:

答案 0 :(得分:2)

直接不可能,但是如果您每次运行cache(在脚本的开头或结尾)都使用日期-时间字符串,则有可能。

Cache::rememberForever('name_of_artisan_task', function () {
    return now()->toDateTimeString();
});

该示例显示了使用Cache门面的::rememberForever方法创建上次运行任务的键/值。顾名思义,这将永远保存。

您可以使用cache()助手轻松获取此日期和时间:

cache('name_of_artisan_task');

此方法的缺点是,如果清除了缓存,则将不再存储该缓存。

答案 1 :(得分:1)

每次运行任务时都只写日志,也可以将其推送到数据库中。

<?php

namespace App\Console\Commands\Tasks;

use Illuminate\Console\Command;

class ScheduledTask extends Command
{
    public function handle()
    {
        //
        // ...handle you task
        //
        $file = 'logs/jobs/' . __CLASS__ . '.log';
        $message = 'Executed at: ' . date('Y-m-d H:i:s', time());
        file_put_contents(storage_path($file), $message, FILE_APPEND);
    }
}