Как обновить кеш если скрипт выполняет крон
Здравствуйте.
выполняется команда по крону (обновление цен в магазине согласно курса евро)
Сейчас же, я заметил что изменения в базе произошли, а на сайте ничего не изменилось.
Зашел в админку обновил кеш и вуаля, новые цены стали отображаться.
Подскажите что нужно сделать в сниппете чтобы обновить кеш у всех страниц на которых выводятся цены.
выполняется команда по крону (обновление цен в магазине согласно курса евро)
/usr/bin/curl --silent "http://сайт.ru/update-price" > /dev/null 2>&1
раньше такая команда обновляла цены в минишопе хорошо. Изменения сразу же видны были на сайте.Сейчас же, я заметил что изменения в базе произошли, а на сайте ничего не изменилось.
Зашел в админку обновил кеш и вуаля, новые цены стали отображаться.
Подскажите что нужно сделать в сниппете чтобы обновить кеш у всех страниц на которых выводятся цены.
Комментарии: 3
Нужно сначала определиться где выполняется скрипт — как я понял в стороннем PHP файле.
Вам нужно в скрипте вытащить ID ресурсов для которых нужно обновить кэш и почистить их из core/cache/
если не принципиально и можно грохнуть все то вот такой например способ может подойти
так же кэш можно удалить средствами самого MODx из его API.
Вам нужно в скрипте вытащить ID ресурсов для которых нужно обновить кэш и почистить их из core/cache/
если не принципиально и можно грохнуть все то вот такой например способ может подойти
<?php
define('MODX_API_MODE', true);
require 'index.php';
shell_exec('rm -rf ' . MODX_CORE_PATH . 'cache/');
при условии что сервер разрешает из PHP запуск скриптов.так же кэш можно удалить средствами самого MODx из его API.
rm -rf весьма опасно, особенно в случае с конкатами и константой, которую можно переопределить.
есть же API вызов $modx->cacheManager->refresh();
есть же API вызов $modx->cacheManager->refresh();
соглашусь — так лучше на порядок и штатными методами.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.