我已经使用Laravel的任务计划完成了CRON Job。但是我需要在上次执行该任务时将其存储在某个地方,
有人有什么存储方式的方法吗?如果Laravel输出什么可以告诉您上次运行的时间吗?
谢谢
答案 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);
}
}