Laravel Tasks - Хранение при последнем запуске - PullRequest
0 голосов
/ 07 июня 2019

Я сделал CRON Job, используя расписание задач Laravel. Но мне нужно где-то хранить, когда эта задача выполнялась в последний раз,

Есть ли у кого-нибудь какие-либо методы, как они сохраняют это, а также, если Laravel выводит что-нибудь, что может сказать вам, когда он последний раз запускался?

Спасибо

Ответы [ 2 ]

2 голосов
/ 07 июня 2019

Непосредственно невозможно, однако возможно, если вы cache строка даты и времени в каждом запуске (либо в начале, либо в конце вашего сценария).

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

В примере показано использованиеCache метод ::rememberForever фасада для создания ключа / значения последнего запуска задачи.Как следует из названия, это сохраняется навсегда.

Вы можете легко получить эту дату и время, используя помощник cache():

cache('name_of_artisan_task');

Недостаток этого метода в том, чтоесли ваш кеш очищен, он больше не будет храниться.

1 голос
/ 07 июня 2019

Просто пишите журнал каждый раз, когда задача была запущена, или вы можете поместить ее в базу данных.

<?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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...