Консоль в движке (счетчик статей/постов), как обновить?
Обратил внимание, что счетчик статей/постов по теме нужно обязательно обновлять в админке, иначе не считает. Возможно нужен крон, или я что-то упустил?
Обратил внимание, что счетчик статей/постов по теме нужно обязательно обновлять в админке, иначе не считает. Возможно нужен крон, или я что-то упустил?
Сделал бы вот так, это позволило бы выбирать, когда что удобнее обновлять. Или всё целиком.
<?php
declare(strict_types=1);
namespace App\Commands;
use Hleb\Base\Task;
use Modules\Admin\Controllers\ConsoleController;
/** php console refresh-data {arg} **/
class RefreshData extends Task
{
/**
* Resource regeneration and data update.
*/
protected function run(string $arg): int
{
match ($arg) {
'topics' => ConsoleController::topic(),
'posts' => ConsoleController::post(),
'up' => ConsoleController::up(),
'tl' => ConsoleController::tl(),
'all' => ConsoleController::all(),
default => throw new \InvalidArgumentException('Wrong argument: ' . $arg)
};
return self::SUCCESS_CODE;
}
}
Чтобы запускать задание на сервере вручную нужно определить где находится исполняемый файл php и указать путь до текущего проекта. Если PHP установлен в /usr/bin/php, то команда для запуска с обновлением всех данных:
/usr/bin/php /path/to/project/console refresh-data all
Если только темы нужно обновить:
/usr/bin/php /path/to/project/console refresh-data topics
Чтобы запускать через cron:
0 3 * * * /usr/bin/php /path/to/project/console refresh-data all
— запускать задачу ежедневно в 3:00 утра
PS Про запуск и крон я дописал для тех, кто этого не знает.
+
Ну то есть я бы сделал вот так, в методах ConsoleController есть уже такое разделение, а там кому как удобно. Более подробное описание как это работает …
+
PPS Вижу, что если нужно поправить ссылку, то редактирование недоступно сразу, так как сообщение добавилось к предыдущему… а оно вышло за срок редактирования. Можно было бы предыдущему изменить срок, но это весь принцип ограничений сбивает. Возможно, что можно придумать решение. Пока даю просто ссылку https://hleb2framework.ru/ru/2/0/console/command
Да, это вылетело с обновлениями. Спасибо, добавил 👍
На GitHub изменения внесены, вот команда которая нужна будет:
php console default-task all
console
— это файл в корне сайта.К нему соотв. необходимо надо будет указать путь (везде разный). По времени исполнять поставить раз в сутки.
P.S. я ещё протестирую в эти выходные, в следующем релизе (по ошибкам который) это будет. Планирую на следующей недели
0.9.2
будет.Пост изменил на вопрос. Тут необходим заголовок т.к. для поиска он нужен. Посты ущербные в этом плане. 😄